109 lines
4.3 KiB
TypeScript
109 lines
4.3 KiB
TypeScript
// Metro module 16346 (f16347).
|
|
import { useCallback } from "react";
|
|
import { View } from "react-native";
|
|
import UserRequiredActionStore from "../../../../stores/UserRequiredActionStore";
|
|
import UserStore from "../../../../stores/UserStore";
|
|
import { Endpoints, VerificationModalScenes, VerificationTypes, HelpdeskArticles } from "../../../../Constants";
|
|
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../../_bundle/Module712";
|
|
import HelpdeskUtils from "../../../../utils/HelpdeskUtils";
|
|
import { useStateFromStores } from "../../../../_bundle/Module589";
|
|
import VerificationUtils from "../../VerificationUtils";
|
|
import { useNavigation } from "../../../../design/components/Navigator/native/useNavigation.native";
|
|
import useBackPressHandler, { BackPressHandler } from "../../../routing/native/useBackPressHandler";
|
|
import { Button } from "../../../../design/components/Button/native/Button.native";
|
|
import { intl, t } from "../../../../intl/index.native";
|
|
import CaptchaUtils from "../../../../utils/native/CaptchaUtils";
|
|
import { HTTP } from "../../../../_bundle/sendRequest";
|
|
import { accountDetailsInit } from "../../../../actions/UserSettingsAccountActionCreators";
|
|
import { Text } from "../../../../design/components/Text/native/Text";
|
|
import { emailSupport } from "../../../../utils/native/SupportUtils";
|
|
const useStyles = createStyles({
|
|
container: {
|
|
flex: 1,
|
|
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW
|
|
},
|
|
containerInner: {
|
|
flex: 1,
|
|
padding: 20,
|
|
justifyContent: "center",
|
|
alignItems: "center"
|
|
},
|
|
title: {
|
|
marginTop: 20,
|
|
fontSize: 17,
|
|
textAlign: "center",
|
|
color: Module712.colors.MOBILE_TEXT_HEADING_PRIMARY
|
|
},
|
|
body: {
|
|
marginTop: 4,
|
|
marginBottom: 20,
|
|
fontSize: 14,
|
|
textAlign: "center",
|
|
color: Module712.unsafe_rawColors.PRIMARY_400
|
|
},
|
|
blocks: {
|
|
width: "60%",
|
|
justifyContent: "center"
|
|
},
|
|
verificationType: {
|
|
marginBottom: 20
|
|
},
|
|
button: {
|
|
marginBottom: 20,
|
|
marginHorizontal: 20,
|
|
alignSelf: "center"
|
|
}
|
|
});
|
|
const articleURL = HelpdeskUtils.getArticleURL(HelpdeskArticles.VERIFICATION_FAQ);
|
|
export default function Overview() {
|
|
let navigation;
|
|
const styles = useStyles();
|
|
const stateFromStores = useStateFromStores([UserRequiredActionStore], () => VerificationUtils.getVerificationTypes(UserRequiredActionStore.getAction()), [], VerificationUtils.areVerificationTypesEqual);
|
|
navigation = useNavigation();
|
|
useBackPressHandler(BackPressHandler.minimize);
|
|
const callback = useCallback(() => <>
|
|
{stateFromStores.map((stateFromStore) => {
|
|
return stateFromStore === VerificationTypes.CAPTCHA ? <Button text={intl.string(t["3413d0"])} onPress={() => {
|
|
CaptchaUtils.showCaptcha().then((result) => {
|
|
HTTP.post({
|
|
url: Endpoints.CAPTCHA,
|
|
body: {
|
|
captcha_key: result
|
|
},
|
|
oldFormErrors: true,
|
|
rejectWithError: true
|
|
});
|
|
});
|
|
}} grow /> : <View key={stateFromStore} style={styles.verificationType}>
|
|
<Button text={VerificationUtils.getButtonTitle(stateFromStore)} onPress={() => {
|
|
let ADD_PHONE = VerificationModalScenes.ADD_PHONE;
|
|
if (!(stateFromStore !== VerificationTypes.EMAIL_OR_PHONE && stateFromStore !== VerificationTypes.EMAIL && stateFromStore !== VerificationTypes.REVERIFY_EMAIL)) {
|
|
accountDetailsInit();
|
|
ADD_PHONE = UserStore.getCurrentUser()?.email != null ? VerificationModalScenes.RESEND_EMAIL : VerificationModalScenes.ENTER_EMAIL;
|
|
}
|
|
navigation.push(ADD_PHONE);
|
|
}} grow />
|
|
</View>;
|
|
})}
|
|
</>, [navigation, stateFromStores, styles.verificationType]);
|
|
return <View style={styles.container}>
|
|
<View style={styles.containerInner}>
|
|
<Text variant="heading-lg/semibold" style={styles.title} accessibilityRole="header">
|
|
{intl.string(t.Iz0kDg)}
|
|
</Text>
|
|
<Text variant="text-sm/medium" style={styles.body}>
|
|
{intl.format(t["0rqMV5"], {
|
|
helpCenterURL: articleURL
|
|
})}
|
|
</Text>
|
|
<View style={styles.blocks}>
|
|
{callback()}
|
|
</View>
|
|
</View>
|
|
<View style={styles.button} accessibilityRole="link">
|
|
<Button variant="secondary" text={intl.string(t["Yl/Riu"])} onPress={emailSupport} />
|
|
</View>
|
|
</View>;
|
|
};
|