78 lines
3.6 KiB
TypeScript
78 lines
3.6 KiB
TypeScript
// Metro module 9180 (f9181).
|
|
import { useCallback, useMemo } from "react";
|
|
import { ScrollView, View } from "react-native";
|
|
import UserStore from "../../../../stores/UserStore";
|
|
import { CHANGE_EMAIL_REASONS_ORDER, SUSPICIOUS_CHANGE_EMAIL_REASONS } from "../../VerificationConstants";
|
|
import { AnalyticEvents } from "../../../../Constants";
|
|
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
|
|
import Module712 from "../../../../_bundle/Module712";
|
|
import { useStateFromStores } from "../../../../_bundle/Module589";
|
|
import { useNavigation } from "../../../../design/components/Navigator/native/useNavigation.native";
|
|
import AnalyticsUtils from "../../../../utils/AnalyticsUtils";
|
|
import { VerificationModalScenes } from "../../../../ConstantsIOS";
|
|
import { TableRadioGroup } from "../../../../design/components/TableRow/native/TableRadioGroup.native";
|
|
import { TableRadioRow } from "../../../../design/components/TableRow/native/TableRadioRow.native";
|
|
import { getChangeEmailReasonDisplayText } from "../../ChangeEmailUtils";
|
|
import { Text } from "../../../../design/components/Text/native/Text";
|
|
import { intl, t } from "../../../../intl/index.native";
|
|
import { Button } from "../../../../design/components/Button/native/Button.native";
|
|
const useStyles = createStyles({
|
|
background: {
|
|
backgroundColor: Module712.colors.BACKGROUND_BASE_LOW
|
|
},
|
|
container: {
|
|
paddingVertical: Module712.space.PX_12,
|
|
paddingHorizontal: Module712.space.PX_16
|
|
},
|
|
radioGroup: {
|
|
paddingTop: Module712.space.PX_16,
|
|
paddingBottom: 38
|
|
},
|
|
title: {
|
|
textAlign: "center"
|
|
}
|
|
});
|
|
export default function ChangeEmailCollectReasons(props) {
|
|
let navigation, callback;
|
|
const { changeEmailReason, setChangeEmailReason } = props;
|
|
navigation = void 0;
|
|
callback = void 0;
|
|
const styles = useStyles();
|
|
const stateFromStores = useStateFromStores([UserStore], () => UserStore.getCurrentUser());
|
|
navigation = useNavigation();
|
|
const callback2 = useCallback(() => {
|
|
AnalyticsUtils.track(AnalyticEvents.USER_ACCOUNT_EMAIL_CHANGE_REASON_CONTINUE, {
|
|
change_email_reason_enum: changeEmailReason
|
|
});
|
|
if (changeEmailReason != null && SUSPICIOUS_CHANGE_EMAIL_REASONS.has(changeEmailReason)) {
|
|
navigation.push(VerificationModalScenes.CHANGE_EMAIL_WARNING);
|
|
} else {
|
|
navigation.push(VerificationModalScenes.ENTER_EMAIL);
|
|
}
|
|
}, [navigation, changeEmailReason]);
|
|
callback = useCallback((a0) => {
|
|
AnalyticsUtils.track(AnalyticEvents.USER_ACCOUNT_EMAIL_CHANGE_REASON_SELECTED, {
|
|
change_email_reason_enum: a0
|
|
});
|
|
setChangeEmailReason(a0);
|
|
}, [setChangeEmailReason]);
|
|
const memo = useMemo(() => {
|
|
let value = changeEmailReason;
|
|
if (changeEmailReason == null) {
|
|
value = "";
|
|
}
|
|
return <TableRadioGroup value={value} onChange={callback} hasIcons={false}>
|
|
{CHANGE_EMAIL_REASONS_ORDER.map((item, index) => <TableRadioRow key={`formrow-${index}`} label={getChangeEmailReasonDisplayText(item)} value={item} />)}
|
|
</TableRadioGroup>;
|
|
}, [changeEmailReason, callback]);
|
|
return stateFromStores == null ? null : <ScrollView keyboardShouldPersistTaps="handled" alwaysBounceVertical={false} style={styles.background}>
|
|
<View style={styles.container}>
|
|
<Text style={styles.title} accessibilityRole="header" variant="heading-xl/extrabold" color="mobile-text-heading-primary">
|
|
{intl.string(t["41NIIh"])}
|
|
</Text>
|
|
<View style={styles.radioGroup}>{memo}</View>
|
|
<Button size="md" variant="primary" onPress={callback2} text={intl.string(t.XiOHRX)} disabled={changeEmailReason == null} />
|
|
</View>
|
|
</ScrollView>;
|
|
};
|