/* Metro module 8107; source: modules/activities/utils/getEmbeddedActivityJoinability.tsx; dependencies: [1379, 1867, 3784, 1878, 4297, 661, 8105, 4800, 7858, 566, 2] */ function _fun64982(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#64982, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8292:6, offset: 0x01bbbd4a, size: 395 bytes, params: 8, frame: 24 var object2; const env0_0 = require; const closure = getEmbeddedActivityJoinability; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */; const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */; const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */; const userStore = importDefault(1878) /* metro dependency 1878: UserStore */; const voiceStateStore = importDefault(4297) /* metro dependency 4297: VoiceStateStore */; const env0_8 = (require(661) /* metro dependency 661: Constants */).Permissions; object2 = {CAN_JOIN: 0}; object2[0] = 'CAN_JOIN'; object2.NO_USE_EMBEDDED_ACTIVITIES_PERMISSION = 1; object2[1] = 'NO_USE_EMBEDDED_ACTIVITIES_PERMISSION'; object2.NO_CHANNEL_CONNECT_PERMISSION = 2; object2[2] = 'NO_CHANNEL_CONNECT_PERMISSION'; object2.CHANNEL_FULL = 3; object2[3] = 'CHANNEL_FULL'; object2.NO_CHANNEL = 4; object2[4] = 'NO_CHANNEL'; object2.ACTIVITIES_FEATURE_NOT_ENABLED_FOR_OS = 5; object2[5] = 'ACTIVITIES_FEATURE_NOT_ENABLED_FOR_OS'; object2.ACTIVITY_NOT_SUPPORTED_ON_OS = 6; object2[6] = 'ACTIVITY_NOT_SUPPORTED_ON_OS'; object2.ACTIVITY_AGE_GATED = 7; object2[7] = 'ACTIVITY_AGE_GATED'; object2.NO_USER = 8; object2[8] = 'NO_USER'; object2.IS_AFK_CHANNEL = 9; object2[9] = 'IS_AFK_CHANNEL'; object2.NO_GUILD = 10; object2[10] = 'NO_GUILD'; (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/activities/utils/getEmbeddedActivityJoinability.tsx'); exports.default = closure; exports.EmbeddedActivityJoinability = object2; exports.useEmbeddedActivityJoinability = useEmbeddedActivityJoinability; } function getEmbeddedActivityJoinability({userId, activity, application, channelId, currentUser, isActivitiesEnabledForCurrentPlatform, ChannelStore, VoiceStateStore, PermissionStore, GuildStore}) { // fn#64983, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8292:734, offset: 0x01bbbed5, size: 615 bytes, params: 2, frame: 24 var r4; var channel; var guildId; var guild; var value7; if (userId == null) { return env0_9.NO_USER; } let value = undefined; if ((currentUser == null ? value : currentUser.nsfwAllowed) === false) { if ((application == null || application.embeddedActivityConfig == null ? value : application.embeddedActivityConfig.requires_age_gate) === true) { value = environment; return env0_9.ACTIVITY_AGE_GATED; } } if (isActivitiesEnabledForCurrentPlatform) { if ((importDefault(8105) /* metro dependency 8105: isActivitySupportedOnClientPlatform */)(application == null || application.embeddedActivityConfig == null ? value : application.embeddedActivityConfig.supported_platforms)) { r4 = channelId ?? (VoiceStateStore.getVoiceStateForSession(userId, activity == null ? value : activity.session_id) == null ? value : VoiceStateStore.getVoiceStateForSession(userId, activity == null ? value : activity.session_id).channelId); if (r4 == null) { return env0_9.NO_CHANNEL; } channel = ChannelStore.getChannel(channelId); if (channel == null) { return env0_9.NO_CHANNEL; } if (channel.isPrivate()) { return env0_9.CAN_JOIN; } guildId = channel.getGuildId(); if (guildId == null) { return env0_9.NO_GUILD; } guild = GuildStore.getGuild(guildId); if ((guild == null ? value : guild.afkChannelId) === channel.id) { return env0_9.IS_AFK_CHANNEL; } value7 = VoiceStateStore.getCurrentClientVoiceChannelId(channel.getGuildId()); value = require(4800) /* metro dependency 4800: ChannelUtils */; value = value.isChannelFull(channel, VoiceStateStore, GuildStore); if (PermissionStore.can(Permissions.USE_EMBEDDED_ACTIVITIES, channel)) { if (channel.isVocal()) { if (value7 === r4) { return env0_9.CAN_JOIN; } if (value) { return env0_9.CHANNEL_FULL; } if (PermissionStore.can(Permissions.CONNECT, channel)) { return env0_9.CAN_JOIN; } return env0_9.NO_CHANNEL_CONNECT_PERMISSION; } return env0_9.CAN_JOIN; } return env0_9.NO_USE_EMBEDDED_ACTIVITIES_PERMISSION; } return env0_9.ACTIVITY_NOT_SUPPORTED_ON_OS; } return env0_9.ACTIVITIES_FEATURE_NOT_ENABLED_FOR_OS; } function useEmbeddedActivityJoinability({userId, activity, channelId, application}) { // fn#64984, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8292:2151, offset: 0x01bbc13c, size: 217 bytes, params: 2, frame: 25 const value2 = (require(7858) /* metro dependency 7858: useIsActivitiesEnabledForCurrentPlatform */).useIsActivitiesEnabledForCurrentPlatform(); const currentUser = (require(566) /* metro dependency 566: flux */).useStateFromStores([UserStore], function() { return UserStore.getCurrentUser(); }); return (require(566) /* metro dependency 566: flux */).useStateFromStores([ChannelStore, VoiceStateStore, PermissionStore, GuildStore], _fun64986, [activity, application, channelId, currentUser, value2, userId]); } function _fun64986() { // fn#64986, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8292:2401, offset: 0x01bbc215, size: 108 bytes, params: 1, frame: 13 return getEmbeddedActivityJoinability({userId: userId, activity: activity, application: application, channelId: channelId, currentUser: currentUser, isActivitiesEnabledForCurrentPlatform: env0_4, ChannelStore: ChannelStore, VoiceStateStore: VoiceStateStore, PermissionStore: PermissionStore, GuildStore: GuildStore}); }