Files
discord-decomp/sources/modules/forwarding/canForwardMessage.tsx
T
2026-07-28 01:06:53 +03:00

175 lines
8.6 KiB
TypeScript

/* Metro module 9797; source: modules/forwarding/canForwardMessage.tsx; dependencies: [1936, 1379, 1867, 3784, 661, 1391, 566, 2] */
import ChannelStore from '../../stores/ChannelStore.tsx'; /* Metro dependency 1379 */
import GuildStore from '../../stores/GuildStore.tsx'; /* Metro dependency 1867 */
import GatedChannelStore from '../channel/GatedChannelStore.tsx'; /* Metro dependency 1936 */
import PermissionStore from '../../stores/PermissionStore.tsx'; /* Metro dependency 3784 */
import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as FluxModule from '../../external/discord_common/js/packages/flux/index.tsx'; /* Metro dependency 566 */
import * as ConstantsModule from '../../Constants.tsx'; /* Metro dependency 661 */
function _fun76785(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#76785, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9983:6, offset: 0x01de4afc, size: 369 bytes, params: 8, frame: 20
let env0_0 = require;
const canForwardMessage2 = canForwardMessage;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = ConstantsModule;
const env0_6 = value.GuildFeatures;
const MessageFlags = value.MessageFlags;
const env0_7 = value.MessageStates;
const env0_8 = value.MessageTypesSets;
const env0_9 = value.Permissions;
const CROSSPOSTED = MessageFlags.CROSSPOSTED;
const FAILED_TO_MENTION_SOME_ROLES_IN_THREAD = MessageFlags.FAILED_TO_MENTION_SOME_ROLES_IN_THREAD;
value = CROSSPOSTED | FAILED_TO_MENTION_SOME_ROLES_IN_THREAD;
const GUILD_FEED_HIDDEN = MessageFlags.GUILD_FEED_HIDDEN;
value |= GUILD_FEED_HIDDEN;
const HAS_SNAPSHOT = MessageFlags.HAS_SNAPSHOT;
value |= HAS_SNAPSHOT;
const HAS_THREAD = MessageFlags.HAS_THREAD;
value |= HAS_THREAD;
const IS_CROSSPOST = MessageFlags.IS_CROSSPOST;
value |= IS_CROSSPOST;
const IS_VOICE_MESSAGE = MessageFlags.IS_VOICE_MESSAGE;
value |= IS_VOICE_MESSAGE;
const SHOULD_SHOW_LINK_NOT_DISCORD_WARNING = MessageFlags.SHOULD_SHOW_LINK_NOT_DISCORD_WARNING;
value |= SHOULD_SHOW_LINK_NOT_DISCORD_WARNING;
const SUPPRESS_EMBEDS = MessageFlags.SUPPRESS_EMBEDS;
value |= SUPPRESS_EMBEDS;
const SUPPRESS_NOTIFICATIONS = MessageFlags.SUPPRESS_NOTIFICATIONS;
value |= SUPPRESS_NOTIFICATIONS;
const URGENT = MessageFlags.URGENT;
value |= URGENT;
const IS_COMPONENTS_V2 = MessageFlags.IS_COMPONENTS_V2;
value |= IS_COMPONENTS_V2;
const IS_GUILD_OFFICIAL = MessageFlags.IS_GUILD_OFFICIAL;
const env0_10 = value | IS_GUILD_OFFICIAL;
(FileImportTrackerModule).fileFinishedImporting('modules/forwarding/canForwardMessage.tsx');
exports.canForwardMessage = canForwardMessage2;
exports.useCanForwardMessage = function(a0) {
var env0_0 = a0;
return require(dependencyMap[6]).useStateFromStores([PermissionStore, GatedChannelStore, ChannelStore,
GuildStore],
_fun76788);
};
function canForwardMessage(a0) { // fn#76786, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9983:505, offset: 0x01de4c6d, size: 452 bytes, params: 2, frame: 22
var r0;
var guild_id;
var r1;
var r3;
var moduleValue;
var value15;
var value16;
var value17;
var guild;
let value = a1;
const value2 = a2;
const value3 = a3;
const value4 = a4;
const value5 = undefined;
const r7 = value !== value5 ? value : PermissionStore;
const r8 = value2 !== value5 ? value2 : GatedChannelStore;
const r5 = value3 !== value5 ? value3 : ChannelStore;
const r9 = value4 !== value5 ? value4 : GuildStore;
if (a0 != null) {
var state = a0.state;
var SEND_FAILED = MessageStates.SEND_FAILED;
r0 = state !== SEND_FAILED && !!MessageTypesSets.FORWARDABLE.has(a0.type);
r0 = r0 && a0.poll == null;
r0 = r0 && a0.sharedClientTheme == null;
r0 = r0 && a0.activity == null;
r0 = r0 && a0.call == null;
r0 = r0 && a0.activityInstance == null;
if (r0) {
moduleValue = require(1391) /* metro dependency 1391: FlagUtils */;
r0 = moduleValue.removeFlag(a0.flags, env0_10) === 0;
}
if (r0) {
value15 = r5.getChannel(a0.channel_id);
value16 = r7.can(Permissions.READ_MESSAGE_HISTORY, value15);
if (value15 == null) {
guild_id = value15 == null ? value5 : value15.guild_id;
value17 = guild_id == null;
if (value17) {
r0 = value17;
} else {
guild = r9.getGuild(guild_id);
r0 = !(guild == null ? value5 : guild.features.has(GuildFeatures.FORWARDING_DISABLED));
}
if (r0) {
value = guild_id == null;
r1 = value || !r8.isChannelOrThreadParentGated(guild_id, a0.channel_id);
if (r1) {
r3 = value15 == null ? value5 : value15.isModeratorReportChannel();
value = r3 != null;
value = !(value && r3);
r1 = value;
}
r0 = r1;
}
return r0;
}
if (value16) {
guild_id = value15 == null ? value5 : value15.guild_id;
value17 = guild_id == null;
if (value17) {
r0 = value17;
} else {
guild = r9.getGuild(guild_id);
r0 = !(guild == null ? value5 : guild.features.has(GuildFeatures.FORWARDING_DISABLED));
}
if (r0) {
value = guild_id == null;
r1 = value || !r8.isChannelOrThreadParentGated(guild_id, a0.channel_id);
if (r1) {
r3 = value15 == null ? value5 : value15.isModeratorReportChannel();
value = r3 != null;
value = !(value && r3);
r1 = value;
}
r0 = r1;
}
return r0;
}
if (value15.isPrivate()) {
guild_id = value15 == null ? value5 : value15.guild_id;
value17 = guild_id == null;
if (value17) {
r0 = value17;
} else {
guild = r9.getGuild(guild_id);
r0 = !(guild == null ? value5 : guild.features.has(GuildFeatures.FORWARDING_DISABLED));
}
if (r0) {
value = guild_id == null;
r1 = value || !r8.isChannelOrThreadParentGated(guild_id, a0.channel_id);
if (r1) {
r3 = value15 == null ? value5 : value15.isModeratorReportChannel();
value = r3 != null;
value = !(value && r3);
r1 = value;
}
r0 = r1;
}
return r0;
}
return false;
}
}
return false;
}
function useCanForwardMessage(a0) { // fn#76787, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9983:1307, offset: 0x01de4e31, size: 90 bytes, params: 2, frame: 15
const env0_0 = a0;
return (FluxModule).useStateFromStores([PermissionStore, GatedChannelStore,
ChannelStore, GuildStore], _fun76788);
function _fun76788() { // fn#76788, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9983:1385, offset: 0x01de4e8b, size: 38 bytes, params: 1, frame: 19
return canForwardMessage(env0_0, PermissionStore, GatedChannelStore, ChannelStore, GuildStore);
}
}
}
global.__d(_fun76785, 9797, [1936, 1379, 1867, 3784, 661, 1391, 566,
2]) /* metro module 9797, dependencies: [1936, 1379, 1867, 3784, 661, 1391, 566, 2] */;