/* 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] */ import Module00005 from '../../by-id/module-00005.js'; /* Metro dependency 5 */ import SnowflakeUtils from '../../utils/SnowflakeUtils.tsx'; /* Metro dependency 21 */ import Module00057 from '../../by-id/module-00057.js'; /* Metro dependency 57 */ import AnalyticsUtils from '../../utils/AnalyticsUtils.tsx'; /* Metro dependency 683 */ import Dispatcher from '../../Dispatcher.tsx'; /* Metro dependency 694 */ import SentryUtilsNative from '../../utils/SentryUtils.native.tsx'; /* Metro dependency 1216 */ import ChannelStore from '../../stores/ChannelStore.tsx'; /* Metro dependency 1379 */ import UserStore from '../../stores/UserStore.tsx'; /* Metro dependency 1878 */ import ImpersonateStore from '../impersonate/ImpersonateStore.tsx'; /* Metro dependency 1937 */ import GuildMemberStore from '../../stores/GuildMemberStore.tsx'; /* Metro dependency 1945 */ import GuildOnboardingPromptsStore from './GuildOnboardingPromptsStore.tsx'; /* Metro dependency 6603 */ import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as HTTPUtilsModule from '../../external/discord_common/js/packages/http-utils/HTTPUtils.tsx'; /* Metro dependency 507 */ import * as ConstantsModule from '../../Constants.tsx'; /* Metro dependency 661 */ import * as GlobalUtilsModule from '../../utils/GlobalUtils.tsx'; /* Metro dependency 1360 */ import * as GuildMemberConstantsModule from '../guild_member/GuildMemberConstants.tsx'; /* Metro dependency 3772 */ import * as AppAnalyticsUtilsModule from '../app_analytics/AppAnalyticsUtils.tsx'; /* Metro dependency 4863 */ import * as ReadStateConstantsModule from '../read_states/ReadStateConstants.tsx'; /* Metro dependency 4865 */ import * as ReadStateActionCreatorsModule from '../../actions/ReadStateActionCreators.tsx'; /* Metro dependency 5097 */ import * as GuildOnboardingUtilsModule from './GuildOnboardingUtils.tsx'; /* Metro dependency 5105 */ import * as UseFlattenedChannelsModule from './useFlattenedChannels.tsx'; /* Metro dependency 6608 */ 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 const env0_0 = require; const _updateOnboardingResponses2 = _updateOnboardingResponses; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); object = {selectOption: selectOption}; object.updateOnboardingResponses = (importDefault(22) /* metro dependency 22 */).debounce(_updateOnboardingResponses2, 1000); object.updateRolesLocal = updateRolesLocal; object.completeOnboarding = completeOnboarding; object.onboardExistingMember = onboardExistingMember; object.finishOnboarding = finishOnboarding; object.setUserOnboardingStep = setUserOnboardingStep; object.resetOnboarding = resetOnboarding; (FileImportTrackerModule).fileFinishedImporting('modules/guild_onboarding/GuildOnboardingActionCreators.tsx'); exports.default = object; 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 object; var object2; var post; var object3; var object4; let value = a1; const env0_0 = a0; let r1 = value !== undefined ? value : false; const impersonateStoreBinding = ImpersonateStore; if (impersonateStoreBinding.isFullServerPreview(a0)) { return undefined; } const guildOnboardingPromptsStoreBinding = GuildOnboardingPromptsStore; const r5 = r1 ? guildOnboardingPromptsStoreBinding.getOnboardingPromptsForOnboarding(a0) : guildOnboardingPromptsStoreBinding.getOnboardingPrompts(a0); const env0_1 = GuildOnboardingPromptsStore.getOnboardingResponses(a0); const value5 = r5.map(function({options}) { return options.filter(_fun52102); }).flat(); const object5 = {}; const object6 = {}; r5.forEach(_fun52103); const HTTP = (HTTPUtilsModule).HTTP; if (r1) { post = HTTP.post; object3 = {}; object3.url = Endpoints.GUILD_ONBOARDING_RESPONSES(a0); object4 = {}; object4.onboarding_responses = value5.map(function(a0) { return a0.id; }); object4.onboarding_prompts_seen = object5; object4.onboarding_responses_seen = object6; object3.body = object4; object3.rejectWithError = true; value = Reflect.apply(post, HTTP, [object3]); value = value.then(_fun52106); value = value.catch(_fun52107); r1 = value; } else { put = HTTP.put; object = {}; object.url = Endpoints.GUILD_ONBOARDING_RESPONSES(a0); object2 = {}; object2.onboarding_responses = value5.map(_fun52108); object2.onboarding_prompts_seen = object5; object2.onboarding_responses_seen = object6; object.body = object2; object.rejectWithError = false; value = Reflect.apply(put, HTTP, [object]); value = value.then(_fun52109); value = value.catch(_fun52110); r1 = value; } return r1; 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 _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 _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 _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; } } 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 object; let body = a0.body; if (body != null) { value = environment.__proto__; value = importDefault(694) /* metro dependency 694: Dispatcher */; dispatch = value.dispatch; object = {type: 'GUILD_ONBOARDING_UPDATE_RESPONSES_SUCCESS'}; object.guildId = env0_0; body = a0.body; object.options = body.onboarding_responses; body = a0.body; object.prompts_seen = body.onboarding_prompts_seen; body = a0.body; object.options_seen = body.onboarding_responses_seen; Reflect.apply(dispatch, value, [object]); } } 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 (SentryUtilsNative).captureException(a0); } function _fun52109(a0) { // fn#52109, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:1250, offset: 0x0131f0cb, size: 123 bytes, params: 2, frame: 13 var value; var dispatch; var object; let body = a0.body; if (body != null) { value = environment.__proto__; value = importDefault(694) /* metro dependency 694: Dispatcher */; dispatch = value.dispatch; object = {type: 'GUILD_ONBOARDING_UPDATE_RESPONSES_SUCCESS'}; object.guildId = env0_0; body = a0.body; object.options = body.onboarding_responses; body = a0.body; object.prompts_seen = body.onboarding_prompts_seen; body = a0.body; object.options_seen = body.onboarding_responses_seen; Reflect.apply(dispatch, value, [object]); } } 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 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) ?? []; const impersonateStoreBinding = ImpersonateStore; if (impersonateStoreBinding.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 guildMemberStoreBinding; 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 = (GuildOnboardingUtilsModule).getSelectedRoleIds(selectedOptions); const selectedChannelIds = (GuildOnboardingUtilsModule).getSelectedChannelIds(selectedOptions); guildOnboardingPromptsStoreBinding = GuildOnboardingPromptsStore; const getEnabled = guildOnboardingPromptsStoreBinding.getEnabled; let r9 = Reflect.apply(getEnabled, guildOnboardingPromptsStoreBinding, [a0]) ? GuildOnboardingPromptsStore.getDefaultChannelIds(a0) : []; const value10 = Module00057((GuildOnboardingUtilsModule).getChannelCoverageForOnboarding(a0, a1, r9), 2); const property = value10[value]; const property2 = value10[1]; const items2 = []; arraySpread(items2, r9, arraySpread(items2, selectedChannelIds, value, undefined), undefined); const value11 = items2.map(function(a0) { return ChannelStore.getChannel(a0); }); const value12 = value11.filter((GlobalUtilsModule).isNotNullish); 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 = (GuildOnboardingUtilsModule).getProviderConnectionState(connections); const applicationConnectionState = (GuildOnboardingUtilsModule).getApplicationConnectionState(connections); const defaultImport = AnalyticsUtils; const track = defaultImport.track; const GUILD_ONBOARDING_STEP_COMPLETED = AnalyticEvents.GUILD_ONBOARDING_STEP_COMPLETED; const object = {}; copyDataProperties(object, AppAnalyticsUtilsModule.collectGuildAnalyticsMetadata(a0), value12); object['step'] = a1.length - 1; object['options_selected'] = value2 == r20 ? value : selectedOptions.filter(_fun52116).length; object['skipped'] = r16.length > value; object['back'] = false; object['in_onboarding'] = true; object['is_final_step'] = true; object['roles_granted'] = selectedRoleIds.size; object['channels_granted'] = length2; object['guild_onboarding_covered_channel_ids'] = property.map(function(a0) { return a0.id; }); object['guild_onboarding_uncovered_channel_ids'] = property2.map(function(a0) { return a0.id; }); object['provider_connections_connected'] = providerConnectionState.connected; object['provider_connections_not_connected'] = providerConnectionState.notConnected; object['application_connections_connected'] = applicationConnectionState.connected; object['application_connections_not_connected'] = applicationConnectionState.notConnected; Reflect.apply(track, defaultImport, [GUILD_ONBOARDING_STEP_COMPLETED, object]); const ackGuildFeature = ReadStateActionCreatorsModule.ackGuildFeature; const GUILD_ONBOARDING_QUESTION = ReadStateTypes.GUILD_ONBOARDING_QUESTION; const defaultImport2 = 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); const impersonateStoreBinding = ImpersonateStore; if (impersonateStoreBinding.isFullServerPreview(a0)) { (require(6607) /* metro dependency 6607: ImpersonateActionCreators */).updateImpersonatedChannels(a0, items2, []); (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) { guildMemberStoreBinding = GuildMemberStore; value22 = guildMemberStoreBinding.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 _fun52116({id}) { // fn#52116, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:3049, offset: 0x0131e22c, size: 27 bytes, params: 2, frame: 11 return env0_0.includes(id); } } 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 guildOnboardingPromptsStoreBinding = GuildOnboardingPromptsStore; const getEnabled = guildOnboardingPromptsStoreBinding.getEnabled; (Reflect.apply(getEnabled, guildOnboardingPromptsStoreBinding, [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 _fun52120(a0) { // fn#52120, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:4094, offset: 0x00c37e1f, size: 22 bytes, params: 2, frame: 11 return env0_0.add(a0); } } 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 (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 (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 Module00005(_fun52125)(); 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 _fun52108(a0) { // fn#52108, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:6784:1158, offset: 0x00e46f8c, size: 10 bytes, params: 2, frame: 1 return a0.id; } global.__d(_fun52099, 6606, [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]) /* metro module 6606, 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] */;