253 lines
11 KiB
TypeScript
253 lines
11 KiB
TypeScript
// Metro module 16340 (f16341).
|
|
import { useMemo, useEffect } from "react";
|
|
import { View } from "react-native";
|
|
import PhoneVerificationStore from "../../../../stores/PhoneVerificationStore";
|
|
import UserRequiredActionStore from "../../../../stores/UserRequiredActionStore";
|
|
import UserStore from "../../../../stores/UserStore";
|
|
import { UserRequiredActions, VerificationModalScenes } from "../../../../Constants";
|
|
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
|
|
import { EmptyState } from "../../../../design/void/native";
|
|
import { VerifyPhone } from "../../../../design/components/Illustration/native/redesign/generated/VerifyPhone";
|
|
import { intl, t } from "../../../../intl/index.native";
|
|
import { Button } from "../../../../design/components/Button/native/Button.native";
|
|
import { ImpressionNames, ImpressionGroups } from "../../../../_bundle/Module503";
|
|
import { getHeaderNoTitle } from "../../../../design/components/Navigator/native/NavigatorHeader.native";
|
|
import { HeaderActionButton } from "../../../../design/components/Navigator/native/HeaderActionButton.native";
|
|
import Module8334 from "../../../../_bundle/Module8334";
|
|
import { showSimpleActionSheet } from "../../../action_sheet/native/showSimpleActionSheet";
|
|
import AuthenticationActionCreators from "../../../../actions/AuthenticationActionCreators";
|
|
import Overview from "./Overview";
|
|
import ResendEmail from "./ResendEmail";
|
|
import ConfirmEmailChangeCode from "./ConfirmEmailChangeCode";
|
|
import ConfirmEmailChangeStart from "./ConfirmEmailChangeStart";
|
|
import EnterEmail from "./EnterEmail";
|
|
import AddPhone from "./AddPhone";
|
|
import PhoneActionCreators, { ChangePhoneReason } from "../../../phone/PhoneActionCreators";
|
|
import VerificationUtils from "../../VerificationUtils";
|
|
import { waitUntil } from "../../../../_bundle/Module16347";
|
|
import VerifyPhone2 from "./VerifyPhone";
|
|
import UserSettingsConfirmPassword from "../../../user_settings/account/native/UserSettingsConfirmPassword";
|
|
import { useStateFromStores } from "../../../../_bundle/Module589";
|
|
import ActionSheetActionCreators from "../../../action_sheet/native/ActionSheetActionCreators";
|
|
import { dismissKeyboard } from "../../../../utils/native/ChatInputUtils";
|
|
import { Navigator } from "../../../../design/components/Navigator/native/Navigator.native";
|
|
let useStyles;
|
|
const PhoneThenEmailInterstitial = function PhoneThenEmailInterstitial(props) {
|
|
const navigation = props.navigation;
|
|
const styles = useStyles();
|
|
return <EmptyState Illustration={VerifyPhone} title={intl.string(t.KLnLIP)} body={intl.string(t.XGbCq3)}>
|
|
<View style={styles.button}>
|
|
<Button text={intl.string(t["3oK4qw"])} onPress={() => {
|
|
navigation.push(UserStore.getCurrentUser()?.email != null ? VerificationModalScenes.RESEND_EMAIL : VerificationModalScenes.ENTER_EMAIL);
|
|
}} />
|
|
</View>
|
|
</EmptyState>;
|
|
};
|
|
useStyles = createStyles({
|
|
button: {
|
|
position: "absolute",
|
|
right: 32,
|
|
bottom: 32,
|
|
left: 32
|
|
}
|
|
});
|
|
export default function VerificationModal() {
|
|
const stateFromStores = useStateFromStores([PhoneVerificationStore], () => PhoneVerificationStore.getCountrySelectorOpened());
|
|
const memo = useMemo(() => {
|
|
const r5 = [{
|
|
name: VerificationModalScenes.OVERVIEW
|
|
}];
|
|
if (stateFromStores) {
|
|
r5.push({
|
|
name: VerificationModalScenes.ADD_PHONE
|
|
});
|
|
}
|
|
return r5;
|
|
}, [stateFromStores]);
|
|
useEffect(() => {
|
|
ActionSheetActionCreators.hideActionSheet();
|
|
dismissKeyboard();
|
|
}, []);
|
|
return <Navigator screens={useMemo(() => {
|
|
const r1 = {};
|
|
r1[VerificationModalScenes.CHANGE_EMAIL_COLLECT_REASONS] = {
|
|
impressionName: ImpressionNames.USER_VERIFICATION_MODAL,
|
|
impressionProperties: {
|
|
impression_group: ImpressionGroups.USER_VERIFICATION_MODAL_FLOW,
|
|
step: VerificationModalScenes.CHANGE_EMAIL_COLLECT_REASONS
|
|
},
|
|
headerTitle: getHeaderNoTitle(),
|
|
render: () => null
|
|
};
|
|
r1[VerificationModalScenes.CHANGE_EMAIL_WARNING] = {
|
|
impressionName: ImpressionNames.USER_VERIFICATION_MODAL,
|
|
impressionProperties: {
|
|
impression_group: ImpressionGroups.USER_VERIFICATION_MODAL_FLOW,
|
|
step: VerificationModalScenes.CHANGE_EMAIL_WARNING
|
|
},
|
|
headerTitle: getHeaderNoTitle(),
|
|
render: () => null
|
|
};
|
|
r1[VerificationModalScenes.OVERVIEW] = {
|
|
impressionName: ImpressionNames.USER_VERIFICATION_MODAL,
|
|
impressionProperties: {
|
|
impression_group: ImpressionGroups.USER_VERIFICATION_MODAL_FLOW,
|
|
step: VerificationModalScenes.OVERVIEW
|
|
},
|
|
gestureEnabled: false,
|
|
headerLeft: () => null,
|
|
headerTitle: getHeaderNoTitle(),
|
|
headerRight: () => <HeaderActionButton source={Module8334} accessibilityLabel={intl.string(t.PdRCRg)} onPress={() => {
|
|
showSimpleActionSheet({
|
|
key: "VerificationOverviewMore",
|
|
options: [{
|
|
label: intl.string(t["2jxGer"]),
|
|
isDestructive: true,
|
|
onPress: () => AuthenticationActionCreators.logout("verification_modal")
|
|
}],
|
|
hasIcons: false
|
|
});
|
|
}} />,
|
|
render: () => <Overview />
|
|
};
|
|
r1[VerificationModalScenes.RESEND_EMAIL] = {
|
|
impressionName: ImpressionNames.USER_VERIFICATION_MODAL,
|
|
impressionProperties: {
|
|
impression_group: ImpressionGroups.USER_VERIFICATION_MODAL_FLOW,
|
|
step: VerificationModalScenes.RESEND_EMAIL
|
|
},
|
|
headerTitle: getHeaderNoTitle(),
|
|
render: () => <ResendEmail />
|
|
};
|
|
r1[VerificationModalScenes.CHANGE_EMAIL_COMPLETE] = {
|
|
impressionName: ImpressionNames.USER_VERIFICATION_MODAL,
|
|
impressionProperties: {
|
|
impression_group: ImpressionGroups.USER_VERIFICATION_MODAL_FLOW,
|
|
step: VerificationModalScenes.RESEND_EMAIL
|
|
},
|
|
headerTitle: getHeaderNoTitle(),
|
|
render: () => <ResendEmail />
|
|
};
|
|
r1[VerificationModalScenes.CONFIRM_EMAIL_CHANGE_CODE] = {
|
|
impressionName: ImpressionNames.USER_VERIFICATION_MODAL,
|
|
impressionProperties: {
|
|
impression_group: ImpressionGroups.USER_VERIFICATION_MODAL_FLOW,
|
|
step: VerificationModalScenes.CONFIRM_EMAIL_CHANGE_CODE
|
|
},
|
|
headerTitle: getHeaderNoTitle(),
|
|
render: () => <ConfirmEmailChangeCode isChangeEmail={false} />
|
|
};
|
|
r1[VerificationModalScenes.CONFIRM_EMAIL_CHANGE_START] = {
|
|
impressionName: ImpressionNames.USER_VERIFICATION_MODAL,
|
|
impressionProperties: {
|
|
impression_group: ImpressionGroups.USER_VERIFICATION_MODAL_FLOW,
|
|
step: VerificationModalScenes.CONFIRM_EMAIL_CHANGE_START
|
|
},
|
|
headerTitle: getHeaderNoTitle(),
|
|
render: () => <ConfirmEmailChangeStart />
|
|
};
|
|
r1[VerificationModalScenes.ENTER_EMAIL] = {
|
|
impressionName: ImpressionNames.USER_VERIFICATION_MODAL,
|
|
impressionProperties: {
|
|
impression_group: ImpressionGroups.USER_VERIFICATION_MODAL_FLOW,
|
|
step: VerificationModalScenes.ENTER_EMAIL
|
|
},
|
|
headerTitle: getHeaderNoTitle(),
|
|
render: () => <EnterEmail isChangeEmail={false} />
|
|
};
|
|
r1[VerificationModalScenes.ADD_PHONE] = {
|
|
impressionName: ImpressionNames.USER_VERIFICATION_MODAL,
|
|
impressionProperties: {
|
|
impression_group: ImpressionGroups.USER_VERIFICATION_MODAL_FLOW,
|
|
step: VerificationModalScenes.ADD_PHONE
|
|
},
|
|
headerTitle: getHeaderNoTitle(),
|
|
render: (a0, c31814_0) => <AddPhone {...a0} reason={ChangePhoneReason.USER_ACTION_REQUIRED} onComplete={(event) => c31814_0.push(VerificationModalScenes.VERIFY_PHONE, {
|
|
phone: event,
|
|
onVerified: (c32147_0) => {
|
|
let c32147_1;
|
|
const VERIFY_PASSWORD = VerificationModalScenes.VERIFY_PASSWORD;
|
|
let c32147_2 = async (c32178_0) => {
|
|
let r63;
|
|
let value;
|
|
let c32178_4 = 0;
|
|
try {
|
|
c32178_4 = 1;
|
|
r63 = VerificationUtils.isPhoneReverification(UserStore.getCurrentUser(), UserRequiredActionStore.getAction()) ? await PhoneActionCreators.reverifyPhone(c32147_0, c32178_0, ChangePhoneReason.USER_ACTION_REQUIRED) : await PhoneActionCreators.addPhone(c32147_0, c32178_0, ChangePhoneReason.USER_ACTION_REQUIRED);
|
|
c32178_4 = 0;
|
|
} catch ($e) {
|
|
const r31 = $e;
|
|
let r7 = r31;
|
|
value = r31;
|
|
if (c32178_4 !== 0) {
|
|
while (true) {
|
|
try {
|
|
c32178_4 = 0;
|
|
} catch (r92) {
|
|
r7 = r92;
|
|
value = r92;
|
|
if (c32178_4 === 0) {
|
|
break;
|
|
}
|
|
continue;
|
|
}
|
|
return value;
|
|
}
|
|
}
|
|
throw r7;
|
|
}
|
|
return r63;
|
|
};
|
|
c32147_1 = async () => {
|
|
let c32179_0;
|
|
c32179_0 = void 0;
|
|
await waitUntil(() => UserRequiredActionStore.getAction() !== UserRequiredActions.REQUIRE_VERIFIED_PHONE);
|
|
if (UserRequiredActionStore.getAction() === UserRequiredActions.REQUIRE_VERIFIED_EMAIL) {
|
|
c31814_0.push(VerificationModalScenes.PHONE_THEN_EMAIL_INTERSTITIAL);
|
|
} else {
|
|
c31814_0.push(VerificationModalScenes.OVERVIEW);
|
|
}
|
|
};
|
|
c31814_0.push(VERIFY_PASSWORD, {
|
|
hideUnverifiedBanner: true,
|
|
onSubmit: function() {
|
|
return c32147_2.apply(this, arguments);
|
|
},
|
|
onSuccess: function() {
|
|
return c32147_1.apply(this, arguments);
|
|
}
|
|
});
|
|
}
|
|
})} />
|
|
};
|
|
r1[VerificationModalScenes.VERIFY_PHONE] = {
|
|
impressionName: ImpressionNames.USER_VERIFICATION_MODAL,
|
|
impressionProperties: {
|
|
impression_group: ImpressionGroups.USER_VERIFICATION_MODAL_FLOW,
|
|
step: VerificationModalScenes.VERIFY_PHONE
|
|
},
|
|
headerTitle: getHeaderNoTitle(),
|
|
render: (a0) => <VerifyPhone2 disableKeyboardAvoidingView {...a0} />
|
|
};
|
|
r1[VerificationModalScenes.VERIFY_PASSWORD] = {
|
|
impressionName: ImpressionNames.USER_VERIFICATION_MODAL,
|
|
impressionProperties: {
|
|
impression_group: ImpressionGroups.USER_VERIFICATION_MODAL_FLOW,
|
|
step: VerificationModalScenes.VERIFY_PASSWORD
|
|
},
|
|
headerTitle: getHeaderNoTitle(),
|
|
render: (a0) => <UserSettingsConfirmPassword {...a0} />
|
|
};
|
|
r1[VerificationModalScenes.PHONE_THEN_EMAIL_INTERSTITIAL] = {
|
|
impressionName: ImpressionNames.USER_VERIFICATION_MODAL,
|
|
impressionProperties: {
|
|
impression_group: ImpressionGroups.USER_VERIFICATION_MODAL_FLOW,
|
|
step: VerificationModalScenes.PHONE_THEN_EMAIL_INTERSTITIAL
|
|
},
|
|
headerTitle: getHeaderNoTitle(),
|
|
render: (a0, a1) => <PhoneThenEmailInterstitial navigation={a1} />
|
|
};
|
|
return r1;
|
|
}, [])} initialRouteStack={memo} headerBackTitle={intl.string(t["13/7kX"])} />;
|
|
};
|