Files
discord-decomp/modules/nuf/native/components/NUFGuildTemplates.tsx
T
2026-11-01 12:12:55 +02:00

131 lines
6.1 KiB
TypeScript

// Metro module 11797 (f11798).
import { useMemo } from "react";
import { Keyboard } from "react-native";
import DefaultRouteStore from "../../../../stores/DefaultRouteStore";
import { AnalyticEvents, AnalyticsSections, NOOP } from "../../../../Constants";
import { GuildTemplateId } from "../../../create_guild/CreateGuildConstants";
import { CreateGuildModalStates, GuildTemplateTriggers, NUXGuildTemplatesAnalytics } from "../../../create_guild/native/CreateGuildConstants";
import GuildActionCreators from "../../../../actions/GuildActionCreators";
import { createGuildProgress } from "../../../guild_progress/native/GuildProgressUtils";
import navigateToLastChannel from "../../../main_tabs_v2/native/navigateToLastChannel";
import CreateGuildModalActionCreators from "../../../create_guild/native/CreateGuildModalActionCreators";
import { showInstantInviteModal } from "../../../../actions/native/CreateGuildActionCreators";
import AnalyticsUtils from "../../../../utils/AnalyticsUtils";
import { ImpressionGroups, ImpressionNames } from "../../../../_bundle/Module503";
import { getHeaderCloseButton } from "../../../../design/components/Navigator/native/NavigatorHeader.native";
import { trackNUFStep } from "../NewUserAnalyticsUtils";
import { transitionTo } from "../../../routing/router_utils";
import GuildTemplates from "../../../create_guild/native/components/GuildTemplates";
import CreationIntent from "../../../create_guild/native/components/CreationIntent";
import CreateGuildContainer from "../../../create_guild/native/components/CreateGuildContainer";
import { intl, t } from "../../../../intl/index.native";
import JoinServer from "../../../create_guild/native/components/JoinServer";
import AcceptInviteContainer from "../../../create_guild/native/components/AcceptInviteContainer";
import ChannelPrompt from "./ChannelPrompt";
import HubEmailConnectionModal from "../../../hub/native/components/HubEmailConnectionModal";
import { Navigator } from "../../../../design/components/Navigator/native/Navigator.native";
let _onCreateServer, impressionProperties;
const onCreateGuild = async function onCreateGuild(c27170_0) {
let c27170_2;
c27170_2 = void 0;
let c30453_0 = c27170_0;
await GuildActionCreators.transitionToGuildSync(c27170_0);
createGuildProgress(c30453_0);
navigateToLastChannel();
CreateGuildModalActionCreators.closeCreateGuildOnboardingModal();
showInstantInviteModal(c30453_0);
AnalyticsUtils.track(AnalyticEvents.USER_FLOW_TRANSITION, {
flow_type: AnalyticsSections.GUILD_CREATE_MODAL,
from_step: CreateGuildModalStates.CREATE_SERVER,
to_step: "modal_closed"
});
};
_onCreateServer = function _onCreateServer() {
const r8 = async (c27171_0, guildId, c27171_2) => {
L12: {
if (c27171_2.id !== GuildTemplateId.CREATE) {
await onCreateGuild(guildId);
break L12;
}
c27171_0.push(CreateGuildModalStates.CHANNEL_PROMPT, {
guildId
});
return void 0;
}
};
_onCreateServer = r8;
return r8.apply(this, arguments);
};
impressionProperties = {
impression_group: ImpressionGroups.GUILD_ADD_FLOW
};
export default function NUFGuildTemplates() {
return <Navigator screens={useMemo(() => {
const r1 = {};
r1[CreateGuildModalStates.GUILD_TEMPLATES] = {
impressionName: ImpressionNames.GUILD_ADD_LANDING,
impressionProperties,
fullscreen: true,
headerTitle: () => null,
headerLeft: getHeaderCloseButton(() => {
trackNUFStep(NUXGuildTemplatesAnalytics.STEP_GUILD_TEMPLATE, NUXGuildTemplatesAnalytics.STEP_FRIEND_LIST, {
skip: true
});
transitionTo(DefaultRouteStore.fallbackRoute);
CreateGuildModalActionCreators.closeCreateGuildOnboardingModal();
}),
render: () => <GuildTemplates trigger={GuildTemplateTriggers.NUF} />
};
r1[CreateGuildModalStates.CREATION_INTENT] = {
impressionName: ImpressionNames.GUILD_ADD_INTENT_SELECTION,
impressionProperties,
fullscreen: true,
headerTitle: () => null,
render: (a0) => <CreationIntent guildTemplate={a0.guildTemplate} trigger={GuildTemplateTriggers.NUF} />
};
r1[CreateGuildModalStates.CREATE_SERVER] = {
impressionName: ImpressionNames.GUILD_ADD_CUSTOMIZE,
impressionProperties,
fullscreen: true,
headerTitle: () => null,
render: (a0, c27172_1) => {
return <CreateGuildContainer {...a0} onCreate={(event) => (function onCreateServer() {
return _onCreateServer.apply(this, arguments);
})(c27172_1, event.guild.id, a0.guildTemplate)} customTitle={intl.string(t["5HZu07"])} />;
}
};
r1[CreateGuildModalStates.JOIN_SERVER] = {
impressionName: ImpressionNames.GUILD_ADD_JOIN,
impressionProperties,
fullscreen: true,
headerTitle: () => null,
render: () => <JoinServer location="Onboarding Join Guild Modal" onClose={CreateGuildModalActionCreators.closeCreateGuildModal} />
};
r1[CreateGuildModalStates.ACCEPT_INVITE] = {
impressionName: ImpressionNames.GUILD_ADD_ACCEPT_INVITE,
impressionProperties,
fullscreen: true,
headerTitle: () => null,
headerLeft: () => null,
render: (a0) => <AcceptInviteContainer code={a0.code} onPressClose={CreateGuildModalActionCreators.closeCreateGuildModal} />
};
r1[CreateGuildModalStates.CHANNEL_PROMPT] = {
impressionName: ImpressionNames.GUILD_ADD_CHANNEL_PROMPT,
impressionProperties,
fullscreen: true,
headerTitle: () => null,
render: ({ guildId: guildId2 }) => <ChannelPrompt hasSkip hasBack={false} onCancel={NOOP} onSuccess={() => onCreateGuild(guildId2)} guildId={guildId2} buttonText={intl.string(t["uHXB+F"])} />
};
r1[CreateGuildModalStates.JOIN_STUDENT_HUB] = {
impressionName: void 0,
impressionProperties,
fullscreen: true,
ignoreKeyboard: true,
headerTitle: () => null,
headerLeft: () => null,
render: () => <HubEmailConnectionModal isNestedNavigator />
};
return r1;
}, [])} onWillFocus={Keyboard.dismiss} headerBackTitle={intl.string(t["13/7kX"])} initialRouteName={CreateGuildModalStates.GUILD_TEMPLATES} />;
};