// Metro module 5120 (f5121). import ImpersonateStore from "../impersonate/ImpersonateStore"; import ChannelStore from "../../stores/ChannelStore"; import GuildMemberStore from "../../stores/GuildMemberStore"; import UserStore from "../../stores/UserStore"; import GuildOnboardingPromptsStore from "./GuildOnboardingPromptsStore"; import { AnalyticEvents, AnalyticsPages, Endpoints } from "../../Constants"; import { GuildMemberFlags } from "../guild_member/GuildMemberConstants"; import { ReadStateTypes } from "../read_states/ReadStateConstants"; import { HTTP } from "../../_bundle/sendRequest"; import Dispatcher from "../../Dispatcher"; import SentryUtils_native from "../../utils/SentryUtils.native"; import { updateImpersonatedRoles, updateImpersonatedChannels, updateImpersonatedData } from "../impersonate/ImpersonateActionCreators"; import Module12 from "../../_bundle/Module12"; import { getSelectedRoleIds, getSelectedChannelIds, getChannelCoverageForOnboarding, getProviderConnectionState, getApplicationConnectionState } from "./GuildOnboardingUtils"; import { isNotNullish } from "../../utils/GlobalUtils"; import { getFlattenedChannels } from "./useFlattenedChannels"; import AnalyticsUtils from "../../utils/AnalyticsUtils"; import { collectGuildAnalyticsMetadata } from "../app_analytics/AppAnalyticsUtils"; import { ackGuildFeature } from "../../actions/ReadStateActionCreators"; import SnowflakeUtils from "../../utils/SnowflakeUtils"; import { setFlag } from "../../_bundle/Module1384"; import { bulkOptInChannels } from "../opt_in_channels/OptInChannelsActionCreators"; import { updateGuildSelfMember } from "../guild_member/GuildMemberActionCreators"; const _updateOnboardingResponses = function _updateOnboardingResponses(a0) { let c14657_2, c14657_3; const guildId = a0; let r2 = arguments[1]; if (r2 === void 0) { r2 = false; } c14657_2 = void 0; c14657_3 = void 0; if (ImpersonateStore.isFullServerPreview(a0)) { return void 0; } const r7 = r2 ? GuildOnboardingPromptsStore.getOnboardingPromptsForOnboarding(a0) : GuildOnboardingPromptsStore.getOnboardingPrompts(a0); const onboardingResponses = GuildOnboardingPromptsStore.getOnboardingResponses(a0); const r13 = r7.map((item) => item.options.filter((option) => onboardingResponses.includes(option.id))).flat(); const onboarding_prompts_seen = {}; c14657_2 = onboarding_prompts_seen; const onboarding_responses_seen = {}; c14657_3 = onboarding_responses_seen; r7.forEach((item) => { c14657_2[item.id] = Date.now(); item.options.forEach(({ id }) => { const r7 = Date.now(); c14657_3[id] = r7; return r7; }); }); return r2 ? HTTP.post({ url: Endpoints.GUILD_ONBOARDING_RESPONSES(a0), body: { onboarding_responses: r13.map((item) => item.id), onboarding_prompts_seen, onboarding_responses_seen }, rejectWithError: true }).then((result) => { if (result.body != null) { Dispatcher.dispatch({ type: "GUILD_ONBOARDING_UPDATE_RESPONSES_SUCCESS", guildId, options: result.body.onboarding_responses, prompts_seen: result.body.onboarding_prompts_seen, options_seen: result.body.onboarding_responses_seen }); } }).catch((error) => SentryUtils_native.captureException(error)) : HTTP.put({ url: Endpoints.GUILD_ONBOARDING_RESPONSES(a0), body: { onboarding_responses: r13.map((item) => item.id), onboarding_prompts_seen, onboarding_responses_seen }, rejectWithError: false }).then((result) => { if (result.body != null) { Dispatcher.dispatch({ type: "GUILD_ONBOARDING_UPDATE_RESPONSES_SUCCESS", guildId, options: result.body.onboarding_responses, prompts_seen: result.body.onboarding_prompts_seen, options_seen: result.body.onboarding_responses_seen }); } }).catch((error) => { SentryUtils_native.captureException(new Error(`Failed to update onboarding responses for guild ${guildId}: ${error.statusCode}`, { cause: error })); }); }; const r40 = { selectOption: (a0, a1, a2, a3) => { const onboardingPrompt = GuildOnboardingPromptsStore.getOnboardingPrompt(a1); if (onboardingPrompt != null) { Dispatcher.dispatch({ type: "GUILD_ONBOARDING_SELECT_OPTION", guildId: a0, promptId: a1, optionId: a2, selected: a3, removedOptionIds: onboardingPrompt.singleSelect ? Module12.without(Module12.map(onboardingPrompt.options, "id"), a2) : [] }); } }, updateOnboardingResponses: Module12.debounce(_updateOnboardingResponses, 1000), updateRolesLocal: function updateRolesLocal(a0, a1, a2) { let r13 = GuildMemberStore.getSelfMember(a0)?.roles; if (r13 == null) { r13 = []; } if (ImpersonateStore.isViewingRoles(a0)) { updateImpersonatedRoles(a0, Module12.difference(Module12.union(r13, a1), a2)); } else if (a1.length > 0 || a2.length > 0) { Dispatcher.dispatch({ type: "GUILD_MEMBER_UPDATE_LOCAL", guildId: a0, roles: Module12.difference(Module12.union(r13, a1), a2), addedRoleIds: a1, removedRoleIds: a2 }); } }, completeOnboarding: (a0, a1) => { const r24 = a1.length > 0 ? a1[a1.length - 1] : null; const selectedOptions = GuildOnboardingPromptsStore.getSelectedOptions(a0); const selectedRoleIds = getSelectedRoleIds(selectedOptions); const selectedChannelIds = getSelectedChannelIds(selectedOptions); const r47 = GuildOnboardingPromptsStore.getEnabled(a0) ? GuildOnboardingPromptsStore.getDefaultChannelIds(a0) : []; const [r23, r22] = getChannelCoverageForOnboarding(a0, a1, r47); const r54 = [...selectedChannelIds, ...r47]; const r66 = r54.map((item) => ChannelStore.getChannel(item)).filter(isNotNullish); const length = getFlattenedChannels(a0, new Set(r54), r66, true).length; const r21 = r24 == null ? [] : r24.options.map((option) => option.id); let c14658_0 = r21; const connections = GuildOnboardingPromptsStore.getConnections(a0); const providerConnectionState = getProviderConnectionState(connections); const applicationConnectionState = getApplicationConnectionState(connections); AnalyticsUtils.track(AnalyticEvents.GUILD_ONBOARDING_STEP_COMPLETED, { ...collectGuildAnalyticsMetadata(a0), step: a1.length - 1, options_selected: r24 == null ? 0 : selectedOptions.filter((selectedOption) => c14658_0.includes(selectedOption.id)).length, skipped: r21.length > 0, back: false, in_onboarding: true, is_final_step: true, roles_granted: selectedRoleIds.size, channels_granted: length, guild_onboarding_covered_channel_ids: r23.map((item) => item.id), guild_onboarding_uncovered_channel_ids: r22.map((item) => item.id), provider_connections_connected: providerConnectionState.connected, provider_connections_not_connected: providerConnectionState.notConnected, application_connections_connected: applicationConnectionState.connected, application_connections_not_connected: applicationConnectionState.notConnected }); ackGuildFeature(a0, ReadStateTypes.GUILD_ONBOARDING_QUESTION, SnowflakeUtils.fromTimestamp(Date.now())); _updateOnboardingResponses(a0, true); if (ImpersonateStore.isFullServerPreview(a0)) { updateImpersonatedChannels(a0, r54, []); updateImpersonatedData(a0, { optInEnabled: true }); updateImpersonatedRoles(a0, Array.from(selectedRoleIds)); const currentUser = UserStore.getCurrentUser(); if (currentUser != null) { let r164 = GuildMemberStore.getMember(a0, currentUser.id)?.flags; if (r164 == null) { r164 = 0; } updateImpersonatedData(a0, { memberOptions: { flags: setFlag(r164, GuildMemberFlags.COMPLETED_ONBOARDING, true) } }); } } }, onboardExistingMember: (a0, a1) => { const set = new Set(a1); let c14659_0 = set; (GuildOnboardingPromptsStore.getEnabled(a0) ? GuildOnboardingPromptsStore.getDefaultChannelIds(a0) : []).forEach((item) => c14659_0.add(item)); if (set.size > 0) { bulkOptInChannels(a0, Array.from(set), true, { page: AnalyticsPages.GUILD_ONBOARDING }); } }, finishOnboarding: (a0) => { Dispatcher.dispatch({ type: "GUILD_ONBOARDING_COMPLETE", guildId: a0 }); }, setUserOnboardingStep: (a0, a1) => { Dispatcher.dispatch({ type: "GUILD_ONBOARDING_SET_STEP", guildId: a0, step: a1 }); }, resetOnboarding: async (c14660_0) => { let flags; L15: { const currentUser = UserStore.getCurrentUser(); if (currentUser != null) { flags = GuildMemberStore.getMember(c14660_0, currentUser.id)?.flags; if (flags == null) { flags = 0; } await updateGuildSelfMember(c14660_0, { flags: setFlag(flags, GuildMemberFlags.COMPLETED_ONBOARDING, false) }); break L15; } return void 0; } } }; export default r40;