222 lines
8.9 KiB
TypeScript
222 lines
8.9 KiB
TypeScript
// 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;
|