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

108 lines
5.1 KiB
TypeScript

// Metro module 9178 (f9179).
import { useState, useMemo } from "react";
import UserStore from "../../../../stores/UserStore";
import { resetChangeEmailStore } from "../../ChangeEmailStore";
import { VerificationModalScenes } from "../../../../Constants";
import EmailVerificationModalActionCreators from "../../../../actions/native/EmailVerificationModalActionCreators";
import { ImpressionGroups, ImpressionNames } from "../../../../_bundle/Module503";
import { getHeaderNoTitle, getHeaderCloseButton } from "../../../../design/components/Navigator/native/NavigatorHeader.native";
import ChangeEmailCollectReasons from "./ChangeEmailCollectReasons";
import ChangeEmailWarning from "./ChangeEmailWarning";
import ResendEmail from "./ResendEmail";
import ConfirmEmailChangeStart from "./ConfirmEmailChangeStart";
import ConfirmEmailChangeCode from "./ConfirmEmailChangeCode";
import EnterEmail from "./EnterEmail";
import UserSettingsConfirmPassword from "../../../user_settings/account/native/UserSettingsConfirmPassword";
import ChangeEmailComplete from "./ChangeEmailComplete";
import { useStateFromStores } from "../../../../_bundle/Module589";
import useInitialValue from "../../../../hooks/useInitialValue";
import { Navigator } from "../../../../design/components/Navigator/native/Navigator.native";
import { intl, t } from "../../../../intl/index.native";
const closeModal = function closeModal() {
resetChangeEmailStore();
EmailVerificationModalActionCreators.close();
};
export default function EmailVerificationModal(props) {
let email_verified, state, setState;
const isChangeEmail = props.isChangeEmail;
email_verified = void 0;
state = void 0;
setState = void 0;
const stateFromStores = useStateFromStores([UserStore], () => UserStore.getCurrentUser());
let r22 = stateFromStores?.verified;
if (r22 == null) {
r22 = false;
}
email_verified = useInitialValue(r22);
[state, setState] = useState();
return <Navigator screens={useMemo(() => {
const isChangeEmail2 = isChangeEmail;
const state2 = state;
const setState2 = setState;
const impressionProperties = {
impression_group: ImpressionGroups.USER_ACCOUNT_EMAIL_CHANGE_FLOW
};
const r21 = {};
r21[VerificationModalScenes.CHANGE_EMAIL_COLLECT_REASONS] = {
headerTitle: getHeaderNoTitle(),
headerLeft: getHeaderCloseButton(closeModal),
impressionName: ImpressionNames.USER_ACCOUNT_EMAIL_CHANGE_COLLECT_REASONS,
impressionProperties,
render: () => <ChangeEmailCollectReasons changeEmailReason={state2} setChangeEmailReason={setState2} />
};
r21[VerificationModalScenes.CHANGE_EMAIL_WARNING] = {
headerTitle: getHeaderNoTitle(),
headerLeft: getHeaderCloseButton(closeModal),
impressionName: ImpressionNames.USER_ACCOUNT_EMAIL_CHANGE_WARNING,
impressionProperties,
render: () => <ChangeEmailWarning changeEmailReason={state2} />
};
r21[VerificationModalScenes.RESEND_EMAIL] = {
headerTitle: getHeaderNoTitle(),
headerLeft: getHeaderCloseButton(closeModal),
impressionName: ImpressionNames.USER_ACCOUNT_EMAIL_RESEND_VERIFICATION_EMAIL,
impressionProperties,
render: () => <ResendEmail />
};
r21[VerificationModalScenes.CONFIRM_EMAIL_CHANGE_START] = {
headerTitle: getHeaderNoTitle(),
headerLeft: getHeaderCloseButton(closeModal),
impressionName: ImpressionNames.USER_ACCOUNT_EMAIL_CHANGE_SEND_CODE,
impressionProperties,
render: () => <ConfirmEmailChangeStart />
};
r21[VerificationModalScenes.CONFIRM_EMAIL_CHANGE_CODE] = {
headerTitle: getHeaderNoTitle(),
headerLeft: getHeaderCloseButton(closeModal),
impressionName: ImpressionNames.USER_ACCOUNT_EMAIL_CHANGE_VERIFY_CODE,
impressionProperties,
render: () => <ConfirmEmailChangeCode isChangeEmail={isChangeEmail2} />
};
r21[VerificationModalScenes.ENTER_EMAIL] = {
headerTitle: getHeaderNoTitle(),
headerLeft: getHeaderCloseButton(closeModal),
impressionName: ImpressionNames.USER_ACCOUNT_EMAIL_CHANGE_ENTER_EMAIL,
impressionProperties: {
...impressionProperties,
email_verified
},
render: () => <EnterEmail isChangeEmail={isChangeEmail2} changeEmailReason={state2} />
};
r21[VerificationModalScenes.VERIFY_PASSWORD] = {
headerTitle: getHeaderNoTitle(),
headerLeft: getHeaderCloseButton(closeModal),
impressionName: ImpressionNames.USER_ACCOUNT_PASSWORD_VERIFY,
impressionProperties,
render: (a0) => <UserSettingsConfirmPassword {...a0} />
};
r21[VerificationModalScenes.CHANGE_EMAIL_COMPLETE] = {
headerTitle: getHeaderNoTitle(),
headerLeft: getHeaderCloseButton(closeModal),
impressionName: ImpressionNames.USER_ACCOUNT_EMAIL_CHANGE_COMPLETE,
impressionProperties,
render: (a0) => <ChangeEmailComplete {...a0} />
};
return r21;
}, [state, isChangeEmail, email_verified])} initialRouteName={!isChangeEmail && stateFromStores?.email != null ? VerificationModalScenes.RESEND_EMAIL : stateFromStores?.verified ? VerificationModalScenes.CONFIRM_EMAIL_CHANGE_START : VerificationModalScenes.ENTER_EMAIL} headerBackTitle={intl.string(t["13/7kX"])} />;
};