/* Metro module 6606; source: modules/guild_onboarding/GuildOnboardingActionCreators.tsx; dependencies: [5, 57, 1937, 1379, 1945, 1878, 6603, 661, 3772, 4865, 507, 694, 1216, 6607, 22, 5105, 1360, 6608, 683, 4863, 5097, 21, 1391, 6609, 6614, 2] */ function _fun52099(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#52099, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:6, offset: 0x0131ed02, size: 413 bytes, params: 8, frame: 20 var object2; const env0_0 = require; const closure = _updateOnboardingResponses; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_3 = importDefault(5) /* metro dependency 5 */; const env0_4 = importDefault(57) /* metro dependency 57 */; const impersonateStore = importDefault(1937) /* metro dependency 1937: ImpersonateStore */; const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */; const guildMemberStore = importDefault(1945) /* metro dependency 1945: GuildMemberStore */; const userStore = importDefault(1878) /* metro dependency 1878: UserStore */; const guildOnboardingPromptsStore = importDefault(6603) /* metro dependency 6603: GuildOnboardingPromptsStore */; const constantsModule = require(661) /* metro dependency 661: Constants */; const env0_10 = constantsModule.AnalyticEvents; const env0_11 = constantsModule.AnalyticsPages; const env0_12 = constantsModule.Endpoints; const env0_13 = (require(3772) /* metro dependency 3772: GuildMemberConstants */).GuildMemberFlags; const env0_14 = (require(4865) /* metro dependency 4865: ReadStateConstants */).ReadStateTypes; object2 = {selectOption: selectOption}; object2.updateOnboardingResponses = (importDefault(22) /* metro dependency 22 */).debounce(closure, 1000); object2.updateRolesLocal = updateRolesLocal; object2.completeOnboarding = completeOnboarding; object2.onboardExistingMember = onboardExistingMember; object2.finishOnboarding = finishOnboarding; object2.setUserOnboardingStep = setUserOnboardingStep; object2.resetOnboarding = resetOnboarding; (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/guild_onboarding/GuildOnboardingActionCreators.tsx'); exports.default = object2; } function _updateOnboardingResponses(a0) { // fn#52100, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:282, offset: 0x0131ee9f, size: 402 bytes, params: 2, frame: 21 var put; var object7; var object8; var post; var object9; var object10; let value = a1; const env0_0 = a0; let r1 = value !== undefined ? value : false; if (ImpersonateStore.isFullServerPreview(a0)) { return undefined; } const r5 = r1 ? GuildOnboardingPromptsStore.getOnboardingPromptsForOnboarding(a0) : GuildOnboardingPromptsStore.getOnboardingPrompts(a0); const env0_1 = GuildOnboardingPromptsStore.getOnboardingResponses(a0); const value5 = r5.map(function({options}) { return options.filter(_fun52102); }).flat(); const object11 = {}; const object12 = {}; r5.forEach(_fun52103); const HTTP = (require(507) /* metro dependency 507: HTTPUtils */).HTTP; if (r1) { post = HTTP.post; object9 = {}; object9.url = Endpoints.GUILD_ONBOARDING_RESPONSES(a0); object10 = {}; object10.onboarding_responses = value5.map(function(a0) { return a0.id; }); object10.onboarding_prompts_seen = object11; object10.onboarding_responses_seen = object12; object9.body = object10; object9.rejectWithError = true; value = Reflect.apply(post, HTTP, [object9]); value = value.then(_fun52106); value = value.catch(_fun52107); r1 = value; } else { put = HTTP.put; object7 = {}; object7.url = Endpoints.GUILD_ONBOARDING_RESPONSES(a0); object8 = {}; object8.onboarding_responses = value5.map(_fun52108); object8.onboarding_prompts_seen = object11; object8.onboarding_responses_seen = object12; object7.body = object8; object7.rejectWithError = false; value = Reflect.apply(put, HTTP, [object7]); value = value.then(_fun52109); value = value.catch(_fun52110); r1 = value; } return r1; } function selectOption(a0, a1, a2, a3) { // fn#52111, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:1619, offset: 0x0131f1e9, size: 187 bytes, params: 5, frame: 20 var r3; var defaultImport; var without; var defaultImport2; var value; const onboardingPrompt = GuildOnboardingPromptsStore.getOnboardingPrompt(a1); if (onboardingPrompt != null) { if (onboardingPrompt.singleSelect) { defaultImport = importDefault(22) /* metro dependency 22 */; without = defaultImport.without; defaultImport2 = importDefault(22) /* metro dependency 22 */; r3 = Reflect.apply(without, defaultImport, [defaultImport2.map(onboardingPrompt.options, 'id'), a2]); } else { r3 = []; } value = importDefault(694) /* metro dependency 694: Dispatcher */; value.dispatch({type: 'GUILD_ONBOARDING_SELECT_OPTION', guildId: a0, promptId: a1, optionId: a2, selected: a3, removedOptionIds: r3}); } } function updateRolesLocal(a0, a1, a2) { // fn#52112, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:1973, offset: 0x0131f2a4, size: 293 bytes, params: 4, frame: 23 var dispatch; var defaultImport; var difference; var defaultImport2; var moduleValue; var updateImpersonatedRoles; var defaultImport3; var value; const selfMember = GuildMemberStore.getSelfMember(a0); const value3 = undefined; const r9 = (selfMember == null ? value3 : selfMember.roles) ?? []; if (ImpersonateStore.isViewingRoles(a0)) { moduleValue = require(6607) /* metro dependency 6607: ImpersonateActionCreators */; updateImpersonatedRoles = moduleValue.updateImpersonatedRoles; value = importDefault(22) /* metro dependency 22 */; difference = value.difference; defaultImport3 = importDefault(22) /* metro dependency 22 */; Reflect.apply(updateImpersonatedRoles, moduleValue, [a0, Reflect.apply(difference, value, [defaultImport3.union(r9, a1), a2])]); } else if (a1.length > 0 || a2.length > 0) { value = importDefault(694) /* metro dependency 694: Dispatcher */; dispatch = value.dispatch; defaultImport = importDefault(22) /* metro dependency 22 */; difference = defaultImport.difference; defaultImport2 = importDefault(22) /* metro dependency 22 */; Reflect.apply(dispatch, value, [{type: 'GUILD_MEMBER_UPDATE_LOCAL', guildId: a0, roles: Reflect.apply(difference, defaultImport, [defaultImport2.union(r9, a1), a2]), addedRoleIds: a1, removedRoleIds: a2}]); } return value3; } function completeOnboarding(a0, a1) { // fn#52113, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:2346, offset: 0x0131f3c9, size: 1129 bytes, params: 3, frame: 38 var flags; var updateImpersonatedData; var moduleValue11; var updateImpersonatedRoles; var Array; var currentUser; var value22; var moduleValue12; const length = a1.length; let value = 0; const value2 = null; const r20 = length > value ? a1[a1.length - 1] : value2; const selectedOptions = GuildOnboardingPromptsStore.getSelectedOptions(a0); const value5 = undefined; const selectedRoleIds = (require(5105) /* metro dependency 5105: GuildOnboardingUtils */).getSelectedRoleIds(selectedOptions); const selectedChannelIds = (require(5105) /* metro dependency 5105: GuildOnboardingUtils */).getSelectedChannelIds(selectedOptions); const getEnabled = GuildOnboardingPromptsStore.getEnabled; let r9 = Reflect.apply(getEnabled, GuildOnboardingPromptsStore, [a0]) ? GuildOnboardingPromptsStore.getDefaultChannelIds(a0) : []; const value10 = env0_4((require(5105) /* metro dependency 5105: GuildOnboardingUtils */).getChannelCoverageForOnboarding(a0, a1, r9), 2); const property = value10[value]; const property2 = value10[1]; const items = []; arraySpread(items, r9, arraySpread(items, selectedChannelIds, value, undefined), undefined); const value11 = items.map(function(a0) { return ChannelStore.getChannel(a0); }); const value12 = value11.filter((require(1360) /* metro dependency 1360: GlobalUtils */).isNotNullish); const useFlattenedChannelsModule = require(6608) /* metro dependency 6608: useFlattenedChannels */; const getFlattenedChannels = useFlattenedChannelsModule.getFlattenedChannels; const Set = global.Set; const value13 = Object.create(Set.prototype, {constructor: {value: Set}}); const set = new Set(); const length2 = Reflect.apply(getFlattenedChannels, useFlattenedChannelsModule, [a0, set instanceof Object ? set : value13, value12, true]).length; const r16 = value2 == r20 ? [] : r20.options.map(function(a0) { return a0.id; }); const connections = GuildOnboardingPromptsStore.getConnections(a0); const providerConnectionState = (require(5105) /* metro dependency 5105: GuildOnboardingUtils */).getProviderConnectionState(connections); const applicationConnectionState = (require(5105) /* metro dependency 5105: GuildOnboardingUtils */).getApplicationConnectionState(connections); const defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */; const track = defaultImport.track; const GUILD_ONBOARDING_STEP_COMPLETED = AnalyticEvents.GUILD_ONBOARDING_STEP_COMPLETED; const object3 = {}; const appAnalyticsUtilsModule = require(4863) /* metro dependency 4863: AppAnalyticsUtils */; copyDataProperties(object3, appAnalyticsUtilsModule.collectGuildAnalyticsMetadata(a0), value12); object3['step'] = a1.length - 1; object3['options_selected'] = value2 == r20 ? value : selectedOptions.filter(_fun52116).length; object3['skipped'] = r16.length > value; object3['back'] = false; object3['in_onboarding'] = true; object3['is_final_step'] = true; object3['roles_granted'] = selectedRoleIds.size; object3['channels_granted'] = length2; object3['guild_onboarding_covered_channel_ids'] = property.map(function(a0) { return a0.id; }); object3['guild_onboarding_uncovered_channel_ids'] = property2.map(function(a0) { return a0.id; }); object3['provider_connections_connected'] = providerConnectionState.connected; object3['provider_connections_not_connected'] = providerConnectionState.notConnected; object3['application_connections_connected'] = applicationConnectionState.connected; object3['application_connections_not_connected'] = applicationConnectionState.notConnected; Reflect.apply(track, defaultImport, [GUILD_ONBOARDING_STEP_COMPLETED, object3]); const readStateActionCreatorsModule = require(5097) /* metro dependency 5097: ReadStateActionCreators */; const ackGuildFeature = readStateActionCreatorsModule.ackGuildFeature; const GUILD_ONBOARDING_QUESTION = ReadStateTypes.GUILD_ONBOARDING_QUESTION; const defaultImport2 = importDefault(21) /* metro dependency 21: SnowflakeUtils */; const fromTimestamp = defaultImport2.fromTimestamp; const Date = global.Date; Reflect.apply(ackGuildFeature, readStateActionCreatorsModule, [a0, GUILD_ONBOARDING_QUESTION, Reflect.apply(fromTimestamp, defaultImport2, [Date.now()])]); _updateOnboardingResponses(a0, true); if (ImpersonateStore.isFullServerPreview(a0)) { (require(6607) /* metro dependency 6607: ImpersonateActionCreators */).updateImpersonatedChannels(a0, items, []); (require(6607) /* metro dependency 6607: ImpersonateActionCreators */).updateImpersonatedData(a0, {optInEnabled: true}); moduleValue11 = require(6607) /* metro dependency 6607: ImpersonateActionCreators */; updateImpersonatedRoles = moduleValue11.updateImpersonatedRoles; Array = global.Array; Reflect.apply(updateImpersonatedRoles, moduleValue11, [a0, Array.from(selectedRoleIds)]); currentUser = UserStore.getCurrentUser(); if (value2 != currentUser) { value22 = GuildMemberStore.getMember(a0, currentUser.id); flags = value2 == value22 ? value5 : value22.flags; r9 = value2 != flags ? flags : value; value = require(6607) /* metro dependency 6607: ImpersonateActionCreators */; updateImpersonatedData = value.updateImpersonatedData; moduleValue12 = require(1391) /* metro dependency 1391: FlagUtils */; Reflect.apply(updateImpersonatedData, value, [a0, {memberOptions: {flags: moduleValue12.setFlag(r9, GuildMemberFlags.COMPLETED_ONBOARDING, true)}}]); } } return value5; } function onboardExistingMember(a0, a1) { // fn#52119, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:3994, offset: 0x0131f848, size: 188 bytes, params: 3, frame: 19 var moduleValue; var bulkOptInChannels; const Set = global.Set; let set = new Set(a1); const getEnabled = GuildOnboardingPromptsStore.getEnabled; (Reflect.apply(getEnabled, GuildOnboardingPromptsStore, [a0]) ? GuildOnboardingPromptsStore.getDefaultChannelIds(a0) : []).forEach(_fun52120); if (set.size > 0) { moduleValue = require(6609) /* metro dependency 6609: OptInChannelsActionCreators */; bulkOptInChannels = moduleValue.bulkOptInChannels; set = global.Array.from(set); Reflect.apply(bulkOptInChannels, moduleValue, [a0, set, true, {page: AnalyticsPages.GUILD_ONBOARDING}]); } } function finishOnboarding(a0) { // fn#52121, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:4192, offset: 0x0131f904, size: 56 bytes, params: 2, frame: 13 (importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'GUILD_ONBOARDING_COMPLETE', guildId: a0}); } function setUserOnboardingStep(a0, a1) { // fn#52122, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:4277, offset: 0x0131f93c, size: 64 bytes, params: 3, frame: 13 (importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'GUILD_ONBOARDING_SET_STEP', guildId: a0, step: a1}); } function resetOnboarding(a0) { // fn#52123, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:4392, offset: 0x0131f97c, size: 34 bytes, params: 2, frame: 11 const env0_0 = a0; return env0_3(_fun52125)(); } function _fun52101({options}) { // fn#52101, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:468, offset: 0x0131f031, size: 27 bytes, params: 2, frame: 11 return options.filter(_fun52102); } function _fun52103({id, options}) { // fn#52103, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:548, offset: 0x0131f067, size: 62 bytes, params: 2, frame: 13 const binding = env0_2; const Date = global.Date; binding[id] = Date.now(); options.forEach(_fun52104); } function _fun52106(a0) { // fn#52106, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:801, offset: 0x0131f0cb, size: 123 bytes, params: 2, frame: 13 var value; var dispatch; var object2; let body = a0.body; if (body != null) { value = environment.__proto__; value = importDefault(694) /* metro dependency 694: Dispatcher */; dispatch = value.dispatch; object2 = {type: 'GUILD_ONBOARDING_UPDATE_RESPONSES_SUCCESS'}; object2.guildId = env0_0; body = a0.body; object2.options = body.onboarding_responses; body = a0.body; object2.prompts_seen = body.onboarding_prompts_seen; body = a0.body; object2.options_seen = body.onboarding_responses_seen; Reflect.apply(dispatch, value, [object2]); } } function _fun52107(a0) { // fn#52107, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:1035, offset: 0x0131f146, size: 41 bytes, params: 2, frame: 11 const value = environment.__proto__; return (importDefault(1216) /* metro dependency 1216: SentryUtilsNative */).captureException(a0); } function _fun52110(a0) { // fn#52110, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:1484, offset: 0x0131f16f, size: 122 bytes, params: 2, frame: 20 let value = environment.__proto__; value = importDefault(1216) /* metro dependency 1216: SentryUtilsNative */; const captureException = value.captureException; const Error = global.Error; const value3 = 'Failed to update onboarding responses for guild ' + env0_0 + ': ' + a0.statusCode; const value4 = Object.create(Error.prototype, {constructor: {value: Error}}); const error = new Error(value3, {cause: a0}); Reflect.apply(captureException, value, [error instanceof Object ? error : value4]); } function* _fun52125() { // fn#52125, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:4398, offset: 0x0131f9a7, size: 191 bytes, params: 1, frame: 21 if (true) { value = environment.__proto__.__proto__; var binding = env2_8; var currentUser = binding.getCurrentUser(); if (currentUser != null) { binding = env2_7; var r9 = binding.getMember(require, currentUser.id)?.flags ?? 0; binding = env2_0; var binding2 = env2_2; var value8 = binding(binding2[24]); var updateGuildSelfMember = value8.updateGuildSelfMember; var value9 = binding(binding2[22]); var setFlag = value9.setFlag; var COMPLETED_ONBOARDING = env2_13.COMPLETED_ONBOARDING; yield Reflect.apply(updateGuildSelfMember, value8, [require, {flags: Reflect.apply(setFlag, value9, [r9, COMPLETED_ONBOARDING, false])}]); if (false) { return undefined; } } } } function _fun52102({id}) { // fn#52102, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:489, offset: 0x0131f04c, size: 27 bytes, params: 2, frame: 11 return env1_1.includes(id); } function _fun52104({id}) { // fn#52104, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:590, offset: 0x0131f0a5, size: 38 bytes, params: 2, frame: 11 let value = environment.__proto__; const binding = env1_3; const Date = global.Date; value = Date.now(); binding[id] = value; return value; }