230 lines
6.9 KiB
TypeScript
230 lines
6.9 KiB
TypeScript
// Metro module 14779 (f14780).
|
|
import { useState, useEffect } from "react";
|
|
import { View } from "react-native";
|
|
import { Endpoints } from "../../../../Constants";
|
|
import useWideAuthView from "../../../auth/native/useWideAuthView";
|
|
import MfaScreenUtils from "../MfaScreenUtils";
|
|
import { intl, t } from "../../../../intl/index.native";
|
|
import { HTTP } from "../../../../_bundle/sendRequest";
|
|
import { SMS_CODE_LENGTH } from "../../../../_bundle/finishMFACheck";
|
|
import MfaOptionScreen from "./MfaOptionScreen";
|
|
import { TextInput } from "../../../../design/components/TextInput/native/TextInput.native";
|
|
import { Button } from "../../../../design/components/Button/native/Button.native";
|
|
import MFAButton from "../components/button";
|
|
export default function SmsScreen(props) {
|
|
let setState, setState2, state, setState3, setState4, setState5, _handleChange2, _handleResend2;
|
|
const { mfaChallenge, finish } = props;
|
|
setState = void 0;
|
|
setState2 = void 0;
|
|
state = void 0;
|
|
setState3 = void 0;
|
|
setState4 = void 0;
|
|
setState5 = void 0;
|
|
const handleChange2 = function handleChange(a0) {
|
|
return _handleChange2.apply(this, arguments);
|
|
};
|
|
_handleChange2 = function _handleChange() {
|
|
const r9 = async (data) => {
|
|
let message, c30771_4;
|
|
let c30771_5 = 0;
|
|
let c31735_0;
|
|
L14: {
|
|
try {
|
|
setState3(data);
|
|
if (data.length === SMS_CODE_LENGTH) {
|
|
setState(null);
|
|
setState2(true);
|
|
c30771_5 = 1;
|
|
await finish({
|
|
mfaType: "sms",
|
|
data
|
|
});
|
|
(0, setState5)(true);
|
|
c30771_5 = 0;
|
|
(0, setState2)(false);
|
|
break L14;
|
|
}
|
|
} catch ($e) {
|
|
const r26 = $e;
|
|
let r7 = r26;
|
|
c30771_4 = r26;
|
|
if (c30771_5 !== 0) {
|
|
while (true) {
|
|
try {
|
|
const r76 = c30771_4;
|
|
c30771_5 = 0;
|
|
c31735_0 = r76;
|
|
const message3 = c31735_0.body?.message;
|
|
message = message3;
|
|
if (message3 == null) {
|
|
message = c31735_0.message;
|
|
}
|
|
setState(message);
|
|
(0, setState2)(false);
|
|
break L14;
|
|
} catch (r72) {
|
|
r7 = r72;
|
|
c30771_4 = r72;
|
|
if (c30771_5 === 0) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
throw r7;
|
|
}
|
|
return void 0;
|
|
}
|
|
};
|
|
_handleChange2 = r9;
|
|
return r9.apply(this, arguments);
|
|
};
|
|
_handleResend2 = function _handleResend() {
|
|
const r9 = async () => {
|
|
let message2, c30772_3;
|
|
let c30772_4 = 0;
|
|
let c31736_0, c31736_1;
|
|
L10: {
|
|
try {
|
|
c31736_0 = void 0;
|
|
setState(null);
|
|
setState2(true);
|
|
setState4(intl.string(t.LQdCQE));
|
|
c30772_4 = 2;
|
|
c31736_0 = await HTTP.post({
|
|
url: Endpoints.LOGIN_SMS_SEND,
|
|
body: {
|
|
ticket: mfaChallenge.ticket
|
|
},
|
|
oldFormErrors: true,
|
|
rejectWithError: false
|
|
});
|
|
setState4(intl.formatToPlainString(t["8r6h7+"], {
|
|
phoneNumber: c31736_0.body.phone
|
|
}));
|
|
c30772_4 = 1;
|
|
c30772_4 = 0;
|
|
(0, setState2)(false);
|
|
} catch ($e) {
|
|
const r29 = $e;
|
|
let r7 = r29;
|
|
c30772_3 = r29;
|
|
let r30 = c30772_4;
|
|
if (r30 !== 0) {
|
|
while (true) {
|
|
if (r30 === 1) {
|
|
try {
|
|
const r133 = c30772_3;
|
|
c30772_4 = 0;
|
|
(0, setState2)(false);
|
|
throw r133;
|
|
} catch (r131) {
|
|
r7 = r131;
|
|
c30772_3 = r131;
|
|
r30 = c30772_4;
|
|
if (r30 === 0) {
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
try {
|
|
const r110 = c30772_3;
|
|
c30772_4 = 1;
|
|
c31736_1 = r110;
|
|
const message3 = c31736_1.message;
|
|
message2 = message3;
|
|
if (message3 == null) {
|
|
message2 = c31736_1.body?.message;
|
|
}
|
|
setState(message2);
|
|
(0, setState4)(void 0);
|
|
c30772_4 = 0;
|
|
(0, setState2)(false);
|
|
break L10;
|
|
} catch (r107) {
|
|
r7 = r107;
|
|
c30772_3 = r107;
|
|
r30 = c30772_4;
|
|
if (r30 === 0) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
throw r7;
|
|
}
|
|
}
|
|
};
|
|
_handleResend2 = r9;
|
|
return r9.apply(this, arguments);
|
|
};
|
|
const styles = MfaScreenUtils.useScreenStyles(useWideAuthView());
|
|
let errorMessage;
|
|
[errorMessage, setState] = useState(null);
|
|
let disabled;
|
|
[disabled, setState2] = useState(false);
|
|
[state, setState3] = useState("");
|
|
let subtitle;
|
|
[subtitle, setState4] = useState(intl.string(t.LQdCQE));
|
|
let state2;
|
|
[state2, setState5] = useState(false);
|
|
useEffect(() => {
|
|
setState(null);
|
|
HTTP.post({
|
|
url: Endpoints.LOGIN_SMS_SEND,
|
|
body: {
|
|
ticket: mfaChallenge.ticket
|
|
},
|
|
oldFormErrors: true,
|
|
rejectWithError: false
|
|
}).then((result) => {
|
|
setState4(intl.formatToPlainString(t["8r6h7+"], {
|
|
phoneNumber: result.body.phone
|
|
}));
|
|
}).catch((error) => {
|
|
let r4 = error.body?.message;
|
|
if (r4 == null) {
|
|
r4 = error.message;
|
|
}
|
|
setState(r4);
|
|
setState4(void 0);
|
|
});
|
|
}, [mfaChallenge.ticket]);
|
|
const props2 = {
|
|
headerText: intl.string(t.o4JNrO),
|
|
subtitle,
|
|
input: <View style={styles.inputContainer}>
|
|
<TextInput autoFocus autoCapitalize="characters" maxLength={SMS_CODE_LENGTH} autoComplete="sms-otp" textContentType="oneTimeCode" keyboardType="number-pad" onChange={handleChange2} label={intl.string(t["/sHnXc"])} accessibilityLabel={intl.string(t.HZPBOd)} placeholder={intl.string(t.tARzgo)} errorMessage={errorMessage} />
|
|
<Button text={intl.string(t.WbaP3r)} variant="secondary" size="sm" onPress={function handleResend() {
|
|
return _handleResend2.apply(this, arguments);
|
|
}} />
|
|
</View>,
|
|
submit: null,
|
|
screenProps: null,
|
|
mfaMethod: "sms"
|
|
};
|
|
const props3 = {
|
|
variant: "primary",
|
|
text: intl.string(t.geKm7t),
|
|
loading: disabled ? disabled : state2,
|
|
onPress: () => {
|
|
handleChange2(state);
|
|
},
|
|
disabled: null
|
|
};
|
|
if (!disabled) {
|
|
disabled = state2;
|
|
}
|
|
if (!disabled) {
|
|
disabled = state.length !== SMS_CODE_LENGTH;
|
|
}
|
|
props3.disabled = disabled;
|
|
props2.submit = <MFAButton {...props3} />;
|
|
props2.screenProps = {
|
|
mfaChallenge,
|
|
finish
|
|
};
|
|
return <MfaOptionScreen {...props2} />;
|
|
};
|