/* Metro module 10923; source: modules/guild_antiraid/GuildAntiRaidHooks.tsx; dependencies: [1348, 1867, 3784, 3969, 1878, 10906, 8276, 661, 632, 21, 8275, 483, 3789, 10924, 2] */ import SnowflakeUtils from '../../utils/SnowflakeUtils.tsx'; /* Metro dependency 21 */ import UserSettingsProtoStore from '../user_settings/UserSettingsProtoStore.tsx'; /* Metro dependency 1348 */ import GuildStore from '../../stores/GuildStore.tsx'; /* Metro dependency 1867 */ import UserStore from '../../stores/UserStore.tsx'; /* Metro dependency 1878 */ import PermissionStore from '../../stores/PermissionStore.tsx'; /* Metro dependency 3784 */ import SelectedGuildStore from '../../stores/SelectedGuildStore.tsx'; /* Metro dependency 3969 */ import GuildIncidentsStore from './GuildIncidentsStore.tsx'; /* Metro dependency 10906 */ import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as UseStateFromStoresModule from '../../external/discord_common/js/packages/flux/useStateFromStores.tsx'; /* Metro dependency 632 */ import * as ConstantsModule from '../../Constants.tsx'; /* Metro dependency 661 */ import * as GuildAntiRaidConstantsModule from './GuildAntiRaidConstants.tsx'; /* Metro dependency 8276 */ import * as GuildAntiRaidPermissionsUtilsModule from './GuildAntiRaidPermissionsUtils.tsx'; /* Metro dependency 10924 */ function _fun83701(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#83701, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:6, offset: 0x01f25448, size: 380 bytes, params: 8, frame: 19 let env0_0 = require; const _arrayLikeToArray_83704 = function(a0, a1) { var r0; var r1; var r2; var value3; var length; var value5; var value = undefined; var value2 = value == null; reducibleJoin2: while (true) { if (value2) { r0 = value2; break reducibleJoin2; } value3 = value > a0.length; r0 = value3; break reducibleJoin2; } reducibleJoin4: while (true) { if (r0) { length = a0.length; r1 = length; break reducibleJoin4; } r1 = value; break reducibleJoin4; } value = (0, global.Array)(r1); var value4 = 0; if (value4 < r1) { r2 = value4; reducibleLoop5: while (true) { value[r2] = a0[r2]; value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; if (value5 < r1) { r2 = value5; continue reducibleLoop5; } break reducibleLoop5; } } return value; }; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); (FileImportTrackerModule).fileFinishedImporting('modules/guild_antiraid/GuildAntiRaidHooks.tsx'); exports.useFirstGuildIncidentId = useFirstGuildIncidentId; exports.useGuildIncidentsState = useGuildIncidentsState; exports.shouldShowRaidNotificationNagbar = shouldShowRaidNotificationNagbar; exports.shouldShowRaidInAppNotification = shouldShowRaidInAppNotification; exports.getDisabledActions = getDisabledActions; exports.useDisabledActions = useDisabledActions; exports.useShowAntiRaidInGuildNotifSettings = function(a0) { var env0_0 = a0; return require(dependencyMap[8]).useStateFromStores([PermissionStore, GuildStore], _fun83721); }; function _createForOfIteratorHelperLoose_83702(a0, a1) { // fn#83702, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:264, offset: 0x01f255c4, size: 372 bytes, params: 3, frame: 20 var r6; var r9; var r5; var value3; var regexp; const env0_0 = a0; const Symbol = global.Symbol; let value = typeof Symbol !== 'undefined'; let r1 = value && a0[global.Symbol.iterator]; r1 = !r1 ? a0['@@iterator'] : r1; if (r1) { value = r1.call(a0); return value.next.bind(value); } const Array = global.Array; if (Array.isArray(a0)) { if (r1) { } return _fun83703; } value = undefined; if (a0) { if (typeof a0 === 'string') { value = _arrayLikeToArray_83704(a0, value); r5 = value; } else { value3 = ({}).toString.call(a0).slice(8, -1); r6 = value3 === 'Object' && a0.constructor; r9 = r6 ? a0.constructor.name : value3; if (r9 === 'Map') { r6 = global.Array.from(a0); } else if (r9 === 'Set') { r6 = global.Array.from(a0); } else if (r9 === 'Arguments') { value = _arrayLikeToArray_83704(a0, value); r6 = value; } else { regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', ''); if (regexp.test(r9)) { value = _arrayLikeToArray_83704(a0, value); r6 = value; } else { r6 = value; } } r5 = r6; } } else { r5 = value; } if (r5) { if (r5) { } return _fun83703; } const TypeError = global.TypeError; throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'); function _fun83703() { // fn#83703, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:835, offset: 0x00c39d73, size: 69 bytes, params: 1, frame: 5 return env0_1 >= env0_0.length ? {done: true} : {done: false, value: env0_0[typeof env0_1 === 'bigint' ? env0_1 : +env0_1]}; } } function getFirstGuildIncidentId(a0) { // fn#83705, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:1174, offset: 0x01f25738, size: 368 bytes, params: 2, frame: 30 var r4; var value7; var id; var property; var moduleValue; var hasDetectedActivity; var moduleValue2; var isUnderLockdown; var moduleValue3; var moduleValue4; var hasAny; var moduleValue5; var computePermissions; var permissions; var value8; const currentUser = UserStore.getCurrentUser(); const incidentsByGuild = GuildIncidentsStore.getIncidentsByGuild(); const _createForOfIteratorHelperLoose_83702Binding = _createForOfIteratorHelperLoose_83702; const value4 = (SnowflakeUtils).keys(incidentsByGuild); const value5 = _createForOfIteratorHelperLoose_83702Binding(value4.map(function(a0) { return GuildStore.getGuild(a0); })); const value6 = value5(); let done = value6.done; if (!done) { r4 = value6; reducibleLoop1: while (true) { value7 = r4.value; if (value7 != null) { id = value7.id; property = incidentsByGuild[id]; reducibleJoin8: while (true) { if (property == null) { break reducibleJoin8; } moduleValue = require(8275) /* metro dependency 8275: GuildAntiRaidUtils */; hasDetectedActivity = moduleValue.hasDetectedActivity; if (!Reflect.apply(hasDetectedActivity, moduleValue, [property])) { moduleValue2 = require(8275) /* metro dependency 8275: GuildAntiRaidUtils */; reducibleJoin5: while (true) { if (moduleValue2.isUnderLockdown(property)) { break reducibleJoin5; } break reducibleJoin8; } } moduleValue3 = require(8275) /* metro dependency 8275: GuildAntiRaidUtils */; isUnderLockdown = moduleValue3.isUnderLockdown; if (Reflect.apply(isUnderLockdown, moduleValue3, [property])) { id = value7.id; reducibleJoin7: while (true) { if (id !== a0) { break reducibleJoin8; } break reducibleJoin7; } } moduleValue4 = importAll(483) /* metro dependency 483: BigFlagUtils */; hasAny = moduleValue4.hasAny; moduleValue5 = importAll(3789) /* metro dependency 3789: PermissionUtils */; computePermissions = moduleValue5.computePermissions; permissions = Reflect.apply(computePermissions, moduleValue5, [{user: currentUser, context: value7, checkElevated: false}]); if (Reflect.apply(hasAny, moduleValue4, [permissions, IncidentAlertModeratorPermissions])) { return value7.id; } break reducibleJoin8; } } value8 = value5(); done = value8.done; if (done) { return null; } r4 = value8; continue reducibleLoop1; } } return null; } function useFirstGuildIncidentId() { // fn#83707, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:1740, offset: 0x01f258bf, size: 381 bytes, params: 1, frame: 29 var r4; var value4; var id; var property; var moduleValue4; var hasDetectedActivity; var moduleValue5; var isUnderLockdown; var moduleValue6; var hasAny; var moduleValue7; var computePermissions; var permissions; var value5; const currentUser = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([UserStore], function() { return UserStore.getCurrentUser(); }); const incidentsByGuild = (require(632) /* metro dependency 632: useStateFromStores */).useStateFromStores([GuildIncidentsStore], function() { return GuildIncidentsStore.getIncidentsByGuild(); }); const _createForOfIteratorHelperLoose_83702Binding = _createForOfIteratorHelperLoose_83702; const useStateFromStoresModule = require(632) /* metro dependency 632: useStateFromStores */; const useStateFromStoresArray = useStateFromStoresModule.useStateFromStoresArray; const value2 = _createForOfIteratorHelperLoose_83702Binding(Reflect.apply(useStateFromStoresArray, useStateFromStoresModule, [[GuildStore], _fun83710])); const value3 = value2(); let done = value3.done; if (!done) { r4 = value3; reducibleLoop1: while (true) { value4 = r4.value; if (value4 != null) { id = value4.id; property = incidentsByGuild[id]; reducibleJoin6: while (true) { if (property == null) { break reducibleJoin6; } moduleValue4 = require(8275) /* metro dependency 8275: GuildAntiRaidUtils */; hasDetectedActivity = moduleValue4.hasDetectedActivity; if (!Reflect.apply(hasDetectedActivity, moduleValue4, [property])) { moduleValue5 = require(8275) /* metro dependency 8275: GuildAntiRaidUtils */; isUnderLockdown = moduleValue5.isUnderLockdown; reducibleJoin5: while (true) { if (Reflect.apply(isUnderLockdown, moduleValue5, [property])) { break reducibleJoin5; } break reducibleJoin6; } } moduleValue6 = importAll(483) /* metro dependency 483: BigFlagUtils */; hasAny = moduleValue6.hasAny; moduleValue7 = importAll(3789) /* metro dependency 3789: PermissionUtils */; computePermissions = moduleValue7.computePermissions; permissions = Reflect.apply(computePermissions, moduleValue7, [{user: currentUser, context: value4, checkElevated: false}]); if (Reflect.apply(hasAny, moduleValue6, [permissions, IncidentAlertModeratorPermissions])) { return value4.id; } break reducibleJoin6; } } value5 = value2(); done = value5.done; if (done) { return null; } r4 = value5; continue reducibleLoop1; } } return null; function _fun83710() { // fn#83710, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:1982, offset: 0x01f25a4f, size: 63 bytes, params: 1, frame: 11 var environment; let value = environment.__proto__; value = Reflect.apply((importDefault(21) /* metro dependency 21: SnowflakeUtils */).keys, value, [incidentsByGuild]); return value.map(function(a0) { return GuildStore.getGuild(a0); }); } } function useGuildIncidentsState(a0) { // fn#83712, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:2303, offset: 0x01f25aa5, size: 170 bytes, params: 2, frame: 19 var r1; const env0_0 = a0; var value; const value2 = (UseStateFromStoresModule).useStateFromStores([GuildStore, PermissionStore], _fun83713); const value3 = (UseStateFromStoresModule).useStateFromStores([GuildIncidentsStore], _fun83714); object = {shouldShowIncidentActions: value2, incidentData: value3}; const value4 = value3 != null; if (value4) { value = require(8275) /* metro dependency 8275: GuildAntiRaidUtils */; value = value.isUnderLockdown(value3); r1 = value; } else { r1 = value4; } object.isUnderLockdown = r1; return object; function _fun83713() { // fn#83713, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:2379, offset: 0x01f25b4f, size: 97 bytes, params: 1, frame: 15 const value = environment.__proto__; const guild = GuildStore.getGuild(env0_0); if (guild == null) { return false; } const guildPermissions = PermissionStore.getGuildPermissions(guild); return guildPermissions != null && (importAll(483) /* metro dependency 483: BigFlagUtils */).hasAny(guildPermissions, IncidentAlertModeratorPermissions); } function _fun83714() { // fn#83714, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:2531, offset: 0x01f25bb0, size: 40 bytes, params: 1, frame: 12 const value2 = null; return value2 != env0_0 ? GuildIncidentsStore.getGuildIncident(env0_0) : value2; } } function shouldShowRaidNotificationNagbar() { // fn#83715, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:2714, offset: 0x01f25bd8, size: 99 bytes, params: 1, frame: 13 const firstGuildIncidentId = getFirstGuildIncidentId(SelectedGuildStore.getGuildId()); const guildsProto = UserSettingsProtoStore.getGuildsProto(); const value4 = null; const r0 = value4 != firstGuildIncidentId ? (value4 != guildsProto ? guildsProto : {})[firstGuildIncidentId] : value4; return {show: value4 != firstGuildIncidentId && !(value4 != r0 && r0.disableRaidAlertNag), guildId: firstGuildIncidentId}; } function shouldShowRaidInAppNotification() { // fn#83716, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:2966, offset: 0x01f25c3b, size: 167 bytes, params: 1, frame: 17 var value; const firstGuildIncidentId = getFirstGuildIncidentId(SelectedGuildStore.getGuildId()); const guildsProto = UserSettingsProtoStore.getGuildsProto(); const value5 = null; let r3 = value5 != guildsProto ? guildsProto : {}; let r4 = value5 != firstGuildIncidentId ? r3[firstGuildIncidentId] : value5; r3 = value5 != r4 && r4.disableRaidAlertNag; const r6 = value5 != firstGuildIncidentId ? GuildIncidentsStore.getGuildIncident(firstGuildIncidentId) : value5; const value8 = value5 != r6; if (value8) { value = require(8275) /* metro dependency 8275: GuildAntiRaidUtils */; value = value.isUnderLockdown(r6); r4 = value; } else { r4 = value8; } return {show: value5 != firstGuildIncidentId && !r4 && !r3, guildId: firstGuildIncidentId}; } function getDisabledActions(a0) { // fn#83717, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:3285, offset: 0x01f25ce2, size: 274 bytes, params: 2, frame: 18 var invitesDisabledUntil; var r5; var r1; var Date; var prototype; var date; var value4; var value6; if (a0 == null) { return {'dmsDisabled': false, 'invitesDisabled': false}; } var value; const guildIncident = GuildIncidentsStore.getGuildIncident(a0.id); const object = {}; const value3 = undefined; let r4 = a0 == null ? value3 : a0.features.has(GuildFeatures.INVITES_DISABLED); if (!r4) { invitesDisabledUntil = guildIncident == null ? value3 : guildIncident.invitesDisabledUntil; value = invitesDisabledUntil != null; if (value) { Date = global.Date; invitesDisabledUntil = guildIncident.invitesDisabledUntil; prototype = Date.prototype; value = Object.create(prototype, {constructor: {value: Date}}); date = new Date(); value = date instanceof Object ? date : value; Date = global.Date; prototype = Date.prototype; value4 = Object.create(prototype, {constructor: {value: Date}}); date = new Date(); value = value > (date instanceof Object ? date : value4); r5 = value; } else { r5 = value; } r4 = r5; } object.invitesDisabled = r4; let dmsDisabledUntil = guildIncident == null ? value3 : guildIncident.dmsDisabledUntil; value = dmsDisabledUntil != null; if (value) { Date = global.Date; dmsDisabledUntil = guildIncident.dmsDisabledUntil; prototype = Date.prototype; value = Object.create(prototype, {constructor: {value: Date}}); date = new Date(dmsDisabledUntil); value = date instanceof Object ? date : value; Date = global.Date; prototype = Date.prototype; value6 = Object.create(prototype, {constructor: {value: Date}}); date = new Date(); value = value > (date instanceof Object ? date : value6); r1 = value; } else { r1 = value; } object.dmsDisabled = r1; return object; } function useDisabledActions(a0) { // fn#83718, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:3682, offset: 0x01f25df4, size: 346 bytes, params: 2, frame: 20 var r4; var invitesDisabledUntil; var r5; var dmsDisabledUntil; var r1; var r0; var value6; var Date; var prototype; var value7; var date; var value8; var value9; var value12; let value = undefined; const r9 = (a0 == null ? value : a0.id) ?? EMPTY_STRING_SNOWFLAKE_ID; const useStateFromStores = UseStateFromStoresModule.useStateFromStores; let object = [GuildIncidentsStore]; const value4 = Reflect.apply(useStateFromStores, UseStateFromStoresModule, [object, _fun83719, [r9]]); if (a0 == null) { r0 = {'dmsDisabled': false, 'invitesDisabled': false}; } else { object = {}; r4 = a0 == null ? value : a0.features.has(GuildFeatures.INVITES_DISABLED); if (!r4) { invitesDisabledUntil = value4 == null ? value : value4.invitesDisabledUntil; value6 = invitesDisabledUntil != null; if (value6) { Date = global.Date; invitesDisabledUntil = value4.invitesDisabledUntil; prototype = Date.prototype; value7 = Object.create(prototype, {constructor: {value: Date}}); date = new Date(); value8 = date instanceof Object ? date : value7; Date = global.Date; prototype = Date.prototype; value9 = Object.create(prototype, {constructor: {value: Date}}); date = new Date(); r5 = value8 > (date instanceof Object ? date : value9); } else { r5 = value6; } r4 = r5; } object.invitesDisabled = r4; dmsDisabledUntil = value4 == null ? value : value4.dmsDisabledUntil; value = dmsDisabledUntil != null; if (value) { Date = global.Date; dmsDisabledUntil = value4.dmsDisabledUntil; prototype = Date.prototype; value = Object.create(prototype, {constructor: {value: Date}}); date = new Date(); value = date instanceof Object ? date : value; Date = global.Date; prototype = Date.prototype; value12 = Object.create(prototype, {constructor: {value: Date}}); date = new Date(); value = value > (date instanceof Object ? date : value12); r1 = value; } else { r1 = value; } object.dmsDisabled = r1; r0 = object; } return r0; function _fun83719() { // fn#83719, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:3790, offset: 0x01f25f4e, size: 27 bytes, params: 1, frame: 11 return GuildIncidentsStore.getGuildIncident(env0_0); } } function useShowAntiRaidInGuildNotifSettings(a0) { // fn#83720, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:4166, offset: 0x01f25f69, size: 74 bytes, params: 2, frame: 15 const env0_0 = a0; return (UseStateFromStoresModule).useStateFromStores([PermissionStore, GuildStore], _fun83721); function _fun83721() { // fn#83721, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11109:4256, offset: 0x01f25fb3, size: 65 bytes, params: 1, frame: 14 const guild = GuildStore.getGuild(env0_0); return GuildAntiRaidPermissionsUtilsModule.canReportRaid(guild, PermissionStore); } } } global.__d(_fun83701, 10923, [1348, 1867, 3784, 3969, 1878, 10906, 8276, 661, 632, 21, 8275, 483, 3789, 10924, 2]) /* metro module 10923, dependencies: [1348, 1867, 3784, 3969, 1878, 10906, 8276, 661, 632, 21, 8275, 483, 3789, 10924, 2] */;