const TelcoOTP = () => {
const classes = useStyles({});
const dispatch = useDispatch();
const variables = useSelector(
(state: any) => state.process.taskModel.variables
);
const telcoInfo = variables?.telcoInfo;
const client: ClientInfo = variables?.client;
const businessKey: number = variables?.businessKey;
const storeSendName = "otpSended";
const clientDoctypeList = ["УЛ", "ПТ"];
const [phoneHelperText, setPhoneHelperText] = useState("");
const [phoneProviders, languages, docTypes, smsMessages] = usePromise4<
CodeValue[],
CodeValue[],
CodeName[],
CodeValue[]
>(
[
() => api.bccOffline.get<CodeValue[]>("PhoneOperator"),
() => api.bccOffline.get<CodeValue[]>("SMSLanguage"),
() => api.bccOffline.get<CodeName[]>("Id"),
() => api.bccOffline.get<CodeValue[]>("TelcoMessage")
],
[[], [], [], []],
true
);
const changeValue = (object: TelcoInfo) => {
dispatch(
updateTaskVariables(
(c) => c.telcoInfo,
(p) => object
)
);
};
useEffect(() => {
changeValue({
...telcoInfo,
date: moment().format("DD.MM.yyyy"),
language: telcoInfo?.language || LANGUAGES.KAZ,
doctype: telcoInfo?.doctype || DOCUMENTS_TYPE.IDENTITY_CARD
});
if (variables?.errors) {
pm.openSnackBar(variables?.errors, "error");
}
}, []);
const onPhoneChange = (value: string) => {
changeValue({ ...telcoInfo, "phone": value });
if (value.replace("_", "").length === 12 && phoneHelperText === "") {
pm.startLoading(true);
clientPhoneCheck(value, variables?.resultGIIN?.data[0].iin || "").then((resp) => {
if (!resp.open) {
setPhoneHelperText(resp.message);
} else {
pm.openSnackBar(resp.message);
}
pm.stopLoading(true);
})
.catch((e) => {
pm.openSnackBar(e);
pm.stopLoading(true);
});
}
};
//Отправка SMS
const sendSMS = () => {
pm.startLoading();
changeValue({
...telcoInfo,
otpSended: true,
date: moment().format("DD.MM.yyyy")
});
const sms = smsMessages.find((e) => e.code === telcoInfo?.language)?.value?.toString().replace(
"URL",
variables?.vars?.SOG_URL + "?msgId=" + variables?.businessKey
);
api.colvirRest
.postProc<{ cresp: any }>("z_077_PkgFront.pSetLogTelco", {
idbusiness: businessKey,
sphone: telcoInfo?.phone,
stext: `${sms}`
})
.then((resp) => {
if (resp.isSuccess) {
if (resp.data.cresp.status !== "error") {
pm.openSnackBar("Код подтверждения успешно отправлено!", "success");
sessionStorage.setItem(storeSendName, "true");
} else {
pm.openSnackBar(
resp.data.cresp?.error?.message ||
"Ошибка при отправке кода подтверждения!"
);
}
} else {
pm.openSnackBar(
resp?.message || "Ошибка при отправке кода подтверждения!"
);
}
})
pm.openSnackBar(err.message);
changeValue({ ...telcoInfo, otpSended: false });
})
.finally(() => {
pm.stopLoading();
});
};
const deb = debounce(() => {
changeValue({
...telcoInfo,
otpSended: false
});
}, 60_000);
useEffect(() => {
if (telcoInfo?.otpSended) {
deb();
}
}, [telcoInfo?.otpSended]);
const onSubmit = (e: any) => {
e.preventDefault();
if (!phoneHelperText && !telcoInfo.otpSended) {
sendSMS();
}
};
const onFurther = () => {
pm.goForth({ blockUI: true });
};
const onBack = () => {
pm.goBack(true);
};
return (
<form onSubmit={onSubmit}>
<Paper elevation
={0} square
={true} className
={classes.
paper}> <Grid container spacing={2}>
<Grid item xl={12} lg={12} md={12} sm={12} xs={12}>
<Typography variant="h6">
<strong>Подписание согласия ОТР паролем</strong>
</Typography>
</Grid>
<Grid item xl={7} lg={7} md={7} sm={6} xs={12}>
<BccPhoneInputText
disabled={telcoInfo?.otpSended || false}
variant="filled"
fullWidth
style={{ height: "auto" }}
value={telcoInfo?.phone || ""}
onChangeValue={(value) => {
onPhoneChange(value);
}}
label={"Номер телефона"}
required
helperText={phoneHelperText}
error={!!phoneHelperText}
inputProps={{
pattern: "^[+][7]\\s[(]\\d{3}[)]\\s\\d{3}\\s\\d{2}\\s\\d{2}$",
title: "Поле должно быть формата +7 (111) 111 11 11"
}}
onChangeProviderCode={(value) => {
setPhoneHelperText(phoneProviderCheck(value, phoneProviders));
}}
/>
</Grid>
<Grid item xl={5} lg={5} md={5} sm={6} xs={12}>
<Grid container justify="flex-start">
<BccButtonGreen
disabled={telcoInfo?.otpSended || false}
variant="contained"
type="submit"
>
Отправить SMS клиенту
</BccButtonGreen>
</Grid>
</Grid>
<Grid item xl={7} lg={7} md={7} sm={12} xs={12}>
<BccInputText
disabled={telcoInfo?.otpSended || false}
label="Язык обращения"
fullWidth
required
variant="filled"
value={telcoInfo?.language}
select
SelectProps={{ native: true }}
onChange={(e: any) => {
changeValue({
...telcoInfo, language: e.target.value
});
}}
>
{languages.map((m) => (
<option key={m.code} value={m.code}>
{m.value}
</option>
))}
</BccInputText>
</Grid>
<Grid item xl={7} lg={7} md={7} sm={12} xs={12}>
<BccInputText
disabled={telcoInfo?.otpSended || false}
label="Тип документа"
required
fullWidth
variant="filled"
value={telcoInfo?.doctype}
select
SelectProps={{ native: true }}
onChange={(e: any) => {
changeValue({ ...telcoInfo, doctype: e.target.value });
}}
>
{docTypes.filter(d => clientDoctypeList.includes(d.code!)).sort((a: any, b: any) => b.code.localeCompare(a.code))
.map((m) => (
<option key={m.code} value={m.code}>
{m.name}
</option>
))}
</BccInputText>
</Grid>
</Grid>
<Grid container justify="flex-end" spacing={2}>
<Grid item>
<BccButtonRed onClick={() => onBack()}>
Завершить
</BccButtonRed>
</Grid>
<Grid item>
<BccButtonGreen onClick={() => onFurther()}>Далее</BccButtonGreen>
</Grid>
</Grid>
</Paper>
</form>
);
};
export default TelcoOTP;
Y29uc3QgVGVsY29PVFAgPSAoKSA9PiB7CiAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcyh7fSk7CiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpOwogIGNvbnN0IHZhcmlhYmxlcyA9IHVzZVNlbGVjdG9yKAogICAgKHN0YXRlOiBhbnkpID0+IHN0YXRlLnByb2Nlc3MudGFza01vZGVsLnZhcmlhYmxlcwogICk7CiAgY29uc3QgdGVsY29JbmZvID0gdmFyaWFibGVzPy50ZWxjb0luZm87CiAgY29uc3QgY2xpZW50OiBDbGllbnRJbmZvID0gdmFyaWFibGVzPy5jbGllbnQ7CiAgY29uc3QgYnVzaW5lc3NLZXk6IG51bWJlciA9IHZhcmlhYmxlcz8uYnVzaW5lc3NLZXk7CiAgY29uc3Qgc3RvcmVTZW5kTmFtZSA9ICJvdHBTZW5kZWQiOwogIGNvbnN0IGNsaWVudERvY3R5cGVMaXN0ID0gWyLQo9CbIiwgItCf0KIiXTsKCgogIGNvbnN0IFtwaG9uZUhlbHBlclRleHQsIHNldFBob25lSGVscGVyVGV4dF0gPSB1c2VTdGF0ZSgiIik7CiAgY29uc3QgW3Bob25lUHJvdmlkZXJzLCBsYW5ndWFnZXMsIGRvY1R5cGVzLCBzbXNNZXNzYWdlc10gPSB1c2VQcm9taXNlNDwKICAgIENvZGVWYWx1ZVtdLAogICAgQ29kZVZhbHVlW10sCiAgICBDb2RlTmFtZVtdLAogICAgQ29kZVZhbHVlW10KICA+KAogICAgWwogICAgICAoKSA9PiBhcGkuYmNjT2ZmbGluZS5nZXQ8Q29kZVZhbHVlW10+KCJQaG9uZU9wZXJhdG9yIiksCiAgICAgICgpID0+IGFwaS5iY2NPZmZsaW5lLmdldDxDb2RlVmFsdWVbXT4oIlNNU0xhbmd1YWdlIiksCiAgICAgICgpID0+IGFwaS5iY2NPZmZsaW5lLmdldDxDb2RlTmFtZVtdPigiSWQiKSwKICAgICAgKCkgPT4gYXBpLmJjY09mZmxpbmUuZ2V0PENvZGVWYWx1ZVtdPigiVGVsY29NZXNzYWdlIikKICAgIF0sCiAgICBbW10sIFtdLCBbXSwgW11dLAogICAgdHJ1ZQogICk7CiAgY29uc3QgY2hhbmdlVmFsdWUgPSAob2JqZWN0OiBUZWxjb0luZm8pID0+IHsKICAgIGRpc3BhdGNoKAogICAgICB1cGRhdGVUYXNrVmFyaWFibGVzKAogICAgICAgIChjKSA9PiBjLnRlbGNvSW5mbywKICAgICAgICAocCkgPT4gb2JqZWN0CiAgICAgICkKICAgICk7CiAgfTsKCiAgdXNlRWZmZWN0KCgpID0+IHsKICAgIGNoYW5nZVZhbHVlKHsKICAgICAgLi4udGVsY29JbmZvLAogICAgICBvcHREYXRlVGltZTogbmV3IERhdGUoKSwKICAgICAgZGF0ZTogbW9tZW50KCkuZm9ybWF0KCJERC5NTS55eXl5IiksCiAgICAgIGxhbmd1YWdlOiB0ZWxjb0luZm8/Lmxhbmd1YWdlIHx8IExBTkdVQUdFUy5LQVosCiAgICAgIGRvY3R5cGU6IHRlbGNvSW5mbz8uZG9jdHlwZSB8fCBET0NVTUVOVFNfVFlQRS5JREVOVElUWV9DQVJECiAgICB9KTsKCiAgICBpZiAodmFyaWFibGVzPy5lcnJvcnMpIHsKICAgICAgcG0ub3BlblNuYWNrQmFyKHZhcmlhYmxlcz8uZXJyb3JzLCAiZXJyb3IiKTsKICAgIH0KICB9LCBbXSk7CgogIGNvbnN0IG9uUGhvbmVDaGFuZ2UgPSAodmFsdWU6IHN0cmluZykgPT4gewogICAgY2hhbmdlVmFsdWUoeyAuLi50ZWxjb0luZm8sICJwaG9uZSI6IHZhbHVlIH0pOwogICAgaWYgKHZhbHVlLnJlcGxhY2UoIl8iLCAiIikubGVuZ3RoID09PSAxMiAmJiBwaG9uZUhlbHBlclRleHQgPT09ICIiKSB7CiAgICAgIHBtLnN0YXJ0TG9hZGluZyh0cnVlKTsKICAgICAgY2xpZW50UGhvbmVDaGVjayh2YWx1ZSwgdmFyaWFibGVzPy5yZXN1bHRHSUlOPy5kYXRhWzBdLmlpbiB8fCAiIikudGhlbigocmVzcCkgPT4gewogICAgICAgIGlmICghcmVzcC5vcGVuKSB7CiAgICAgICAgICBzZXRQaG9uZUhlbHBlclRleHQocmVzcC5tZXNzYWdlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcG0ub3BlblNuYWNrQmFyKHJlc3AubWVzc2FnZSk7CiAgICAgICAgfQogICAgICAgIHBtLnN0b3BMb2FkaW5nKHRydWUpOwogICAgICB9KQogICAgICAgIC5jYXRjaCgoZSkgPT4gewogICAgICAgICAgcG0ub3BlblNuYWNrQmFyKGUpOwogICAgICAgICAgcG0uc3RvcExvYWRpbmcodHJ1ZSk7CiAgICAgICAgfSk7CiAgICB9CiAgfTsKCi8v0J7RgtC/0YDQsNCy0LrQsCBTTVMKICBjb25zdCBzZW5kU01TID0gKCkgPT4gewogICAgcG0uc3RhcnRMb2FkaW5nKCk7CiAgICBjaGFuZ2VWYWx1ZSh7CiAgICAgIC4uLnRlbGNvSW5mbywKICAgICAgb3RwU2VuZGVkOiB0cnVlLAogICAgICBvcHREYXRlVGltZTogbmV3IERhdGUoKSwKICAgICAgZGF0ZTogbW9tZW50KCkuZm9ybWF0KCJERC5NTS55eXl5IikKICAgIH0pOwogICAgY29uc3Qgc21zID0gc21zTWVzc2FnZXMuZmluZCgoZSkgPT4gZS5jb2RlID09PSB0ZWxjb0luZm8/Lmxhbmd1YWdlKT8udmFsdWU/LnRvU3RyaW5nKCkucmVwbGFjZSgKICAgICAgIlVSTCIsCiAgICAgIHZhcmlhYmxlcz8udmFycz8uU09HX1VSTCArICI/bXNnSWQ9IiArIHZhcmlhYmxlcz8uYnVzaW5lc3NLZXkKICAgICk7CiAgICBhcGkuY29sdmlyUmVzdAogICAgICAucG9zdFByb2M8eyBjcmVzcDogYW55IH0+KCJ6XzA3N19Qa2dGcm9udC5wU2V0TG9nVGVsY28iLCB7CiAgICAgICAgaWRidXNpbmVzczogYnVzaW5lc3NLZXksCiAgICAgICAgc3Bob25lOiB0ZWxjb0luZm8/LnBob25lLAogICAgICAgIHN0ZXh0OiBgJHtzbXN9YAogICAgICB9KQogICAgICAudGhlbigocmVzcCkgPT4gewogICAgICAgIGlmIChyZXNwLmlzU3VjY2VzcykgewogICAgICAgICAgaWYgKHJlc3AuZGF0YS5jcmVzcC5zdGF0dXMgIT09ICJlcnJvciIpIHsKICAgICAgICAgICAgcG0ub3BlblNuYWNrQmFyKCLQmtC+0LQg0L/QvtC00YLQstC10YDQttC00LXQvdC40Y8g0YPRgdC/0LXRiNC90L4g0L7RgtC/0YDQsNCy0LvQtdC90L4hIiwgInN1Y2Nlc3MiKTsKICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShzdG9yZVNlbmROYW1lLCAidHJ1ZSIpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcG0ub3BlblNuYWNrQmFyKAogICAgICAgICAgICAgIHJlc3AuZGF0YS5jcmVzcD8uZXJyb3I/Lm1lc3NhZ2UgfHwKICAgICAgICAgICAgICAi0J7RiNC40LHQutCwINC/0YDQuCDQvtGC0L/RgNCw0LLQutC1INC60L7QtNCwINC/0L7QtNGC0LLQtdGA0LbQtNC10L3QuNGPISIKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewoKICAgICAgICAgIHBtLm9wZW5TbmFja0JhcigKICAgICAgICAgICAgcmVzcD8ubWVzc2FnZSB8fCAi0J7RiNC40LHQutCwINC/0YDQuCDQvtGC0L/RgNCw0LLQutC1INC60L7QtNCwINC/0L7QtNGC0LLQtdGA0LbQtNC10L3QuNGPISIKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9KQogICAgICAuY2F0Y2goKGVycjogRXJyb3IpID0+IHsKICAgICAgICBwbS5vcGVuU25hY2tCYXIoZXJyLm1lc3NhZ2UpOwogICAgICAgIGNoYW5nZVZhbHVlKHsgLi4udGVsY29JbmZvLCBvdHBTZW5kZWQ6IGZhbHNlIH0pOwogICAgICB9KQogICAgICAuZmluYWxseSgoKSA9PiB7CiAgICAgICAgcG0uc3RvcExvYWRpbmcoKTsKICAgICAgfSk7CiAgfTsKCiAgY29uc3QgZGViID0gZGVib3VuY2UoKCkgPT4gewogICAgY2hhbmdlVmFsdWUoewogICAgICAuLi50ZWxjb0luZm8sCiAgICAgIG90cFNlbmRlZDogZmFsc2UKICAgIH0pOwogIH0sIDYwXzAwMCk7CgogIHVzZUVmZmVjdCgoKSA9PiB7CiAgICBpZiAodGVsY29JbmZvPy5vdHBTZW5kZWQpIHsKICAgICAgZGViKCk7CiAgICB9CiAgfSwgW3RlbGNvSW5mbz8ub3RwU2VuZGVkXSk7CgogIGNvbnN0IG9uU3VibWl0ID0gKGU6IGFueSkgPT4gewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYgKCFwaG9uZUhlbHBlclRleHQgJiYgIXRlbGNvSW5mby5vdHBTZW5kZWQpIHsKICAgICAgc2VuZFNNUygpOwogICAgfQogIH07CiAgY29uc3Qgb25GdXJ0aGVyID0gKCkgPT4gewogICAgcG0uZ29Gb3J0aCh7IGJsb2NrVUk6IHRydWUgfSk7CiAgfTsKCiAgY29uc3Qgb25CYWNrID0gKCkgPT4gewogICAgcG0uZ29CYWNrKHRydWUpOwogIH07CgogIHJldHVybiAoCiAgICA8Zm9ybSBvblN1Ym1pdD17b25TdWJtaXR9PgogICAgICA8UGFwZXIgZWxldmF0aW9uPXswfSBzcXVhcmU9e3RydWV9IGNsYXNzTmFtZT17Y2xhc3Nlcy5wYXBlcn0+CiAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezJ9PgogICAgICAgICAgPEdyaWQgaXRlbSB4bD17MTJ9IGxnPXsxMn0gbWQ9ezEyfSBzbT17MTJ9IHhzPXsxMn0+CiAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9Img2Ij4KICAgICAgICAgICAgICA8c3Ryb25nPtCf0L7QtNC/0LjRgdCw0L3QuNC1INGB0L7Qs9C70LDRgdC40Y8g0J7QotCgINC/0LDRgNC+0LvQtdC8PC9zdHJvbmc+CiAgICAgICAgICAgIDwvVHlwb2dyYXBoeT4KICAgICAgICAgIDwvR3JpZD4KCiAgICAgICAgICA8R3JpZCBpdGVtIHhsPXs3fSBsZz17N30gbWQ9ezd9IHNtPXs2fSB4cz17MTJ9PgogICAgICAgICAgICA8QmNjUGhvbmVJbnB1dFRleHQKICAgICAgICAgICAgICBkaXNhYmxlZD17dGVsY29JbmZvPy5vdHBTZW5kZWQgfHwgZmFsc2V9CiAgICAgICAgICAgICAgdmFyaWFudD0iZmlsbGVkIgogICAgICAgICAgICAgIGZ1bGxXaWR0aAogICAgICAgICAgICAgIHN0eWxlPXt7IGhlaWdodDogImF1dG8iIH19CiAgICAgICAgICAgICAgdmFsdWU9e3RlbGNvSW5mbz8ucGhvbmUgfHwgIiJ9CiAgICAgICAgICAgICAgb25DaGFuZ2VWYWx1ZT17KHZhbHVlKSA9PiB7CiAgICAgICAgICAgICAgICBvblBob25lQ2hhbmdlKHZhbHVlKTsKCiAgICAgICAgICAgICAgfX0KICAgICAgICAgICAgICBsYWJlbD17ItCd0L7QvNC10YAg0YLQtdC70LXRhNC+0L3QsCJ9CiAgICAgICAgICAgICAgcmVxdWlyZWQKICAgICAgICAgICAgICBoZWxwZXJUZXh0PXtwaG9uZUhlbHBlclRleHR9CiAgICAgICAgICAgICAgZXJyb3I9eyEhcGhvbmVIZWxwZXJUZXh0fQogICAgICAgICAgICAgIGlucHV0UHJvcHM9e3sKICAgICAgICAgICAgICAgIHBhdHRlcm46ICJeWytdWzddXFxzWyhdXFxkezN9WyldXFxzXFxkezN9XFxzXFxkezJ9XFxzXFxkezJ9JCIsCiAgICAgICAgICAgICAgICB0aXRsZTogItCf0L7Qu9C1INC00L7Qu9C20L3QviDQsdGL0YLRjCDRhNC+0YDQvNCw0YLQsCArNyAoMTExKSAxMTEgMTEgMTEiCiAgICAgICAgICAgICAgfX0KICAgICAgICAgICAgICBvbkNoYW5nZVByb3ZpZGVyQ29kZT17KHZhbHVlKSA9PiB7CiAgICAgICAgICAgICAgICBzZXRQaG9uZUhlbHBlclRleHQocGhvbmVQcm92aWRlckNoZWNrKHZhbHVlLCBwaG9uZVByb3ZpZGVycykpOwogICAgICAgICAgICAgIH19CiAgICAgICAgICAgIC8+CiAgICAgICAgICA8L0dyaWQ+CiAgICAgICAgICA8R3JpZCBpdGVtIHhsPXs1fSBsZz17NX0gbWQ9ezV9IHNtPXs2fSB4cz17MTJ9PgogICAgICAgICAgICA8R3JpZCBjb250YWluZXIganVzdGlmeT0iZmxleC1zdGFydCI+CiAgICAgICAgICAgICAgPEJjY0J1dHRvbkdyZWVuCiAgICAgICAgICAgICAgICBkaXNhYmxlZD17dGVsY29JbmZvPy5vdHBTZW5kZWQgfHwgZmFsc2V9CiAgICAgICAgICAgICAgICB2YXJpYW50PSJjb250YWluZWQiCiAgICAgICAgICAgICAgICB0eXBlPSJzdWJtaXQiCiAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAg0J7RgtC/0YDQsNCy0LjRgtGMIFNNUyDQutC70LjQtdC90YLRgwogICAgICAgICAgICAgIDwvQmNjQnV0dG9uR3JlZW4+CiAgICAgICAgICAgIDwvR3JpZD4KICAgICAgICAgIDwvR3JpZD4KCiAgICAgICAgICA8R3JpZCBpdGVtIHhsPXs3fSBsZz17N30gbWQ9ezd9IHNtPXsxMn0geHM9ezEyfT4KICAgICAgICAgICAgPEJjY0lucHV0VGV4dAogICAgICAgICAgICAgIGRpc2FibGVkPXt0ZWxjb0luZm8/Lm90cFNlbmRlZCB8fCBmYWxzZX0KICAgICAgICAgICAgICBsYWJlbD0i0K/Qt9GL0Log0L7QsdGA0LDRidC10L3QuNGPIgogICAgICAgICAgICAgIGZ1bGxXaWR0aAogICAgICAgICAgICAgIHJlcXVpcmVkCiAgICAgICAgICAgICAgdmFyaWFudD0iZmlsbGVkIgogICAgICAgICAgICAgIHZhbHVlPXt0ZWxjb0luZm8/Lmxhbmd1YWdlfQogICAgICAgICAgICAgIHNlbGVjdAogICAgICAgICAgICAgIFNlbGVjdFByb3BzPXt7IG5hdGl2ZTogdHJ1ZSB9fQogICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZTogYW55KSA9PiB7CiAgICAgICAgICAgICAgICBjaGFuZ2VWYWx1ZSh7CiAgICAgICAgICAgICAgICAgIC4uLnRlbGNvSW5mbywgbGFuZ3VhZ2U6IGUudGFyZ2V0LnZhbHVlCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9fQogICAgICAgICAgICA+CiAgICAgICAgICAgICAge2xhbmd1YWdlcy5tYXAoKG0pID0+ICgKICAgICAgICAgICAgICAgIDxvcHRpb24ga2V5PXttLmNvZGV9IHZhbHVlPXttLmNvZGV9PgogICAgICAgICAgICAgICAgICB7bS52YWx1ZX0KICAgICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgICkpfQogICAgICAgICAgICA8L0JjY0lucHV0VGV4dD4KICAgICAgICAgIDwvR3JpZD4KICAgICAgICAgIDxHcmlkIGl0ZW0geGw9ezd9IGxnPXs3fSBtZD17N30gc209ezEyfSB4cz17MTJ9PgogICAgICAgICAgICA8QmNjSW5wdXRUZXh0CiAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RlbGNvSW5mbz8ub3RwU2VuZGVkIHx8IGZhbHNlfQogICAgICAgICAgICAgIGxhYmVsPSLQotC40L8g0LTQvtC60YPQvNC10L3RgtCwIgogICAgICAgICAgICAgIHJlcXVpcmVkCiAgICAgICAgICAgICAgZnVsbFdpZHRoCiAgICAgICAgICAgICAgdmFyaWFudD0iZmlsbGVkIgogICAgICAgICAgICAgIHZhbHVlPXt0ZWxjb0luZm8/LmRvY3R5cGV9CiAgICAgICAgICAgICAgc2VsZWN0CiAgICAgICAgICAgICAgU2VsZWN0UHJvcHM9e3sgbmF0aXZlOiB0cnVlIH19CiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlOiBhbnkpID0+IHsKICAgICAgICAgICAgICAgIGNoYW5nZVZhbHVlKHsgLi4udGVsY29JbmZvLCBkb2N0eXBlOiBlLnRhcmdldC52YWx1ZSB9KTsKICAgICAgICAgICAgICB9fQogICAgICAgICAgICA+CiAgICAgICAgICAgICAge2RvY1R5cGVzLmZpbHRlcihkID0+IGNsaWVudERvY3R5cGVMaXN0LmluY2x1ZGVzKGQuY29kZSEpKS5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4gYi5jb2RlLmxvY2FsZUNvbXBhcmUoYS5jb2RlKSkKICAgICAgICAgICAgICAgIC5tYXAoKG0pID0+ICgKICAgICAgICAgICAgICAgICAgPG9wdGlvbiBrZXk9e20uY29kZX0gdmFsdWU9e20uY29kZX0+CiAgICAgICAgICAgICAgICAgICAge20ubmFtZX0KICAgICAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgICApKX0KICAgICAgICAgICAgPC9CY2NJbnB1dFRleHQ+CiAgICAgICAgICA8L0dyaWQ+CiAgICAgICAgPC9HcmlkPgoKICAgICAgICA8R3JpZCBjb250YWluZXIganVzdGlmeT0iZmxleC1lbmQiIHNwYWNpbmc9ezJ9PgogICAgICAgICAgPEdyaWQgaXRlbT4KICAgICAgICAgICAgPEJjY0J1dHRvblJlZCBvbkNsaWNrPXsoKSA9PiBvbkJhY2soKX0+CiAgICAgICAgICAgICAg0JfQsNCy0LXRgNGI0LjRgtGMCiAgICAgICAgICAgIDwvQmNjQnV0dG9uUmVkPgogICAgICAgICAgPC9HcmlkPgogICAgICAgICAgPEdyaWQgaXRlbT4KICAgICAgICAgICAgPEJjY0J1dHRvbkdyZWVuIG9uQ2xpY2s9eygpID0+IG9uRnVydGhlcigpfT7QlNCw0LvQtdC1PC9CY2NCdXR0b25HcmVlbj4KICAgICAgICAgIDwvR3JpZD4KICAgICAgICA8L0dyaWQ+CiAgICAgIDwvUGFwZXI+CiAgICA8L2Zvcm0+CiAgKTsKfTsKCmV4cG9ydCBkZWZhdWx0IFRlbGNvT1RQOw==
Main.java:1: error: class, interface, or enum expected
const TelcoOTP = () => {
^
Main.java:3: error: class, interface, or enum expected
const dispatch = useDispatch();
^
Main.java:4: error: class, interface, or enum expected
const variables = useSelector(
^
Main.java:7: error: class, interface, or enum expected
const telcoInfo = variables?.telcoInfo;
^
Main.java:8: error: class, interface, or enum expected
const client: ClientInfo = variables?.client;
^
Main.java:9: error: class, interface, or enum expected
const businessKey: number = variables?.businessKey;
^
Main.java:10: error: class, interface, or enum expected
const storeSendName = "otpSended";
^
Main.java:11: error: class, interface, or enum expected
const clientDoctypeList = ["??", "??"];
^
Main.java:14: error: class, interface, or enum expected
const [phoneHelperText, setPhoneHelperText] = useState("");
^
Main.java:15: error: class, interface, or enum expected
const [phoneProviders, languages, docTypes, smsMessages] = usePromise4<
^
Main.java:30: error: class, interface, or enum expected
const changeValue = (object: TelcoInfo) => {
^
Main.java:37: error: class, interface, or enum expected
};
^
Main.java:39: error: class, interface, or enum expected
useEffect(() => {
^
Main.java:48: error: class, interface, or enum expected
if (variables?.errors) {
^
Main.java:50: error: class, interface, or enum expected
}
^
Main.java:53: error: class, interface, or enum expected
const onPhoneChange = (value: string) => {
^
Main.java:55: error: class, interface, or enum expected
if (value.replace("_", "").length === 12 && phoneHelperText === "") {
^
Main.java:57: error: class, interface, or enum expected
clientPhoneCheck(value, variables?.resultGIIN?.data[0].iin || "").then((resp) => {
^
Main.java:60: error: class, interface, or enum expected
} else {
^
Main.java:62: error: class, interface, or enum expected
}
^
Main.java:64: error: class, interface, or enum expected
})
^
Main.java:67: error: class, interface, or enum expected
pm.stopLoading(true);
^
Main.java:68: error: class, interface, or enum expected
});
^
Main.java:69: error: class, interface, or enum expected
}
^
Main.java:73: error: class, interface, or enum expected
const sendSMS = () => {
^
Main.java:75: error: class, interface, or enum expected
changeValue({
^
Main.java:81: error: class, interface, or enum expected
const sms = smsMessages.find((e) => e.code === telcoInfo?.language)?.value?.toString().replace(
^
Main.java:85: error: class, interface, or enum expected
api.colvirRest
^
Main.java:89: error: illegal character: '`'
stext: `${sms}`
^
Main.java:89: error: illegal character: '`'
stext: `${sms}`
^
Main.java:95: error: class, interface, or enum expected
sessionStorage.setItem(storeSendName, "true");
^
Main.java:96: error: class, interface, or enum expected
} else {
^
Main.java:101: error: class, interface, or enum expected
}
^
Main.java:107: error: class, interface, or enum expected
}
^
Main.java:111: error: class, interface, or enum expected
changeValue({ ...telcoInfo, otpSended: false });
^
Main.java:112: error: class, interface, or enum expected
})
^
Main.java:115: error: class, interface, or enum expected
});
^
Main.java:116: error: class, interface, or enum expected
};
^
Main.java:118: error: class, interface, or enum expected
const deb = debounce(() => {
^
Main.java:123: error: class, interface, or enum expected
}, 60_000);
^
Main.java:125: error: class, interface, or enum expected
useEffect(() => {
^
Main.java:128: error: class, interface, or enum expected
}
^
Main.java:131: error: class, interface, or enum expected
const onSubmit = (e: any) => {
^
Main.java:133: error: class, interface, or enum expected
if (!phoneHelperText && !telcoInfo.otpSended) {
^
Main.java:135: error: class, interface, or enum expected
}
^
Main.java:137: error: class, interface, or enum expected
const onFurther = () => {
^
Main.java:139: error: class, interface, or enum expected
};
^
Main.java:141: error: class, interface, or enum expected
const onBack = () => {
^
Main.java:143: error: class, interface, or enum expected
};
^
Main.java:145: error: class, interface, or enum expected
return (
^
Main.java:165: error: class, interface, or enum expected
}}
^
Main.java:176: error: class, interface, or enum expected
}}
^
Main.java:205: error: class, interface, or enum expected
}}
^
Main.java:226: error: class, interface, or enum expected
}}
^
Main.java:251: error: class, interface, or enum expected
};
^
Main.java:253: error: class, interface, or enum expected
export default TelcoOTP;
^
56 errors