fork download
  1. const TelcoOTP = () => {
  2. const classes = useStyles({});
  3. const dispatch = useDispatch();
  4. const variables = useSelector(
  5. (state: any) => state.process.taskModel.variables
  6. );
  7. const telcoInfo = variables?.telcoInfo;
  8. const client: ClientInfo = variables?.client;
  9. const businessKey: number = variables?.businessKey;
  10. const storeSendName = "otpSended";
  11. const clientDoctypeList = ["УЛ", "ПТ"];
  12.  
  13.  
  14. const [phoneHelperText, setPhoneHelperText] = useState("");
  15. const [phoneProviders, languages, docTypes, smsMessages] = usePromise4<
  16. CodeValue[],
  17. CodeValue[],
  18. CodeName[],
  19. CodeValue[]
  20. >(
  21. [
  22. () => api.bccOffline.get<CodeValue[]>("PhoneOperator"),
  23. () => api.bccOffline.get<CodeValue[]>("SMSLanguage"),
  24. () => api.bccOffline.get<CodeName[]>("Id"),
  25. () => api.bccOffline.get<CodeValue[]>("TelcoMessage")
  26. ],
  27. [[], [], [], []],
  28. true
  29. );
  30. const changeValue = (object: TelcoInfo) => {
  31. dispatch(
  32. updateTaskVariables(
  33. (c) => c.telcoInfo,
  34. (p) => object
  35. )
  36. );
  37. };
  38.  
  39. useEffect(() => {
  40. changeValue({
  41. ...telcoInfo,
  42. optDateTime: new Date(),
  43. date: moment().format("DD.MM.yyyy"),
  44. language: telcoInfo?.language || LANGUAGES.KAZ,
  45. doctype: telcoInfo?.doctype || DOCUMENTS_TYPE.IDENTITY_CARD
  46. });
  47.  
  48. if (variables?.errors) {
  49. pm.openSnackBar(variables?.errors, "error");
  50. }
  51. }, []);
  52.  
  53. const onPhoneChange = (value: string) => {
  54. changeValue({ ...telcoInfo, "phone": value });
  55. if (value.replace("_", "").length === 12 && phoneHelperText === "") {
  56. pm.startLoading(true);
  57. clientPhoneCheck(value, variables?.resultGIIN?.data[0].iin || "").then((resp) => {
  58. if (!resp.open) {
  59. setPhoneHelperText(resp.message);
  60. } else {
  61. pm.openSnackBar(resp.message);
  62. }
  63. pm.stopLoading(true);
  64. })
  65. .catch((e) => {
  66. pm.openSnackBar(e);
  67. pm.stopLoading(true);
  68. });
  69. }
  70. };
  71.  
  72. //Отправка SMS
  73. const sendSMS = () => {
  74. pm.startLoading();
  75. changeValue({
  76. ...telcoInfo,
  77. otpSended: true,
  78. optDateTime: new Date(),
  79. date: moment().format("DD.MM.yyyy")
  80. });
  81. const sms = smsMessages.find((e) => e.code === telcoInfo?.language)?.value?.toString().replace(
  82. "URL",
  83. variables?.vars?.SOG_URL + "?msgId=" + variables?.businessKey
  84. );
  85. api.colvirRest
  86. .postProc<{ cresp: any }>("z_077_PkgFront.pSetLogTelco", {
  87. idbusiness: businessKey,
  88. sphone: telcoInfo?.phone,
  89. stext: `${sms}`
  90. })
  91. .then((resp) => {
  92. if (resp.isSuccess) {
  93. if (resp.data.cresp.status !== "error") {
  94. pm.openSnackBar("Код подтверждения успешно отправлено!", "success");
  95. sessionStorage.setItem(storeSendName, "true");
  96. } else {
  97. pm.openSnackBar(
  98. resp.data.cresp?.error?.message ||
  99. "Ошибка при отправке кода подтверждения!"
  100. );
  101. }
  102. } else {
  103.  
  104. pm.openSnackBar(
  105. resp?.message || "Ошибка при отправке кода подтверждения!"
  106. );
  107. }
  108. })
  109. .catch((err: Error) => {
  110. pm.openSnackBar(err.message);
  111. changeValue({ ...telcoInfo, otpSended: false });
  112. })
  113. .finally(() => {
  114. pm.stopLoading();
  115. });
  116. };
  117.  
  118. const deb = debounce(() => {
  119. changeValue({
  120. ...telcoInfo,
  121. otpSended: false
  122. });
  123. }, 60_000);
  124.  
  125. useEffect(() => {
  126. if (telcoInfo?.otpSended) {
  127. deb();
  128. }
  129. }, [telcoInfo?.otpSended]);
  130.  
  131. const onSubmit = (e: any) => {
  132. e.preventDefault();
  133. if (!phoneHelperText && !telcoInfo.otpSended) {
  134. sendSMS();
  135. }
  136. };
  137. const onFurther = () => {
  138. pm.goForth({ blockUI: true });
  139. };
  140.  
  141. const onBack = () => {
  142. pm.goBack(true);
  143. };
  144.  
  145. return (
  146. <form onSubmit={onSubmit}>
  147. <Paper elevation={0} square={true} className={classes.paper}>
  148. <Grid container spacing={2}>
  149. <Grid item xl={12} lg={12} md={12} sm={12} xs={12}>
  150. <Typography variant="h6">
  151. <strong>Подписание согласия ОТР паролем</strong>
  152. </Typography>
  153. </Grid>
  154.  
  155. <Grid item xl={7} lg={7} md={7} sm={6} xs={12}>
  156. <BccPhoneInputText
  157. disabled={telcoInfo?.otpSended || false}
  158. variant="filled"
  159. fullWidth
  160. style={{ height: "auto" }}
  161. value={telcoInfo?.phone || ""}
  162. onChangeValue={(value) => {
  163. onPhoneChange(value);
  164.  
  165. }}
  166. label={"Номер телефона"}
  167. required
  168. helperText={phoneHelperText}
  169. error={!!phoneHelperText}
  170. inputProps={{
  171. pattern: "^[+][7]\\s[(]\\d{3}[)]\\s\\d{3}\\s\\d{2}\\s\\d{2}$",
  172. title: "Поле должно быть формата +7 (111) 111 11 11"
  173. }}
  174. onChangeProviderCode={(value) => {
  175. setPhoneHelperText(phoneProviderCheck(value, phoneProviders));
  176. }}
  177. />
  178. </Grid>
  179. <Grid item xl={5} lg={5} md={5} sm={6} xs={12}>
  180. <Grid container justify="flex-start">
  181. <BccButtonGreen
  182. disabled={telcoInfo?.otpSended || false}
  183. variant="contained"
  184. type="submit"
  185. >
  186. Отправить SMS клиенту
  187. </BccButtonGreen>
  188. </Grid>
  189. </Grid>
  190.  
  191. <Grid item xl={7} lg={7} md={7} sm={12} xs={12}>
  192. <BccInputText
  193. disabled={telcoInfo?.otpSended || false}
  194. label="Язык обращения"
  195. fullWidth
  196. required
  197. variant="filled"
  198. value={telcoInfo?.language}
  199. select
  200. SelectProps={{ native: true }}
  201. onChange={(e: any) => {
  202. changeValue({
  203. ...telcoInfo, language: e.target.value
  204. });
  205. }}
  206. >
  207. {languages.map((m) => (
  208. <option key={m.code} value={m.code}>
  209. {m.value}
  210. </option>
  211. ))}
  212. </BccInputText>
  213. </Grid>
  214. <Grid item xl={7} lg={7} md={7} sm={12} xs={12}>
  215. <BccInputText
  216. disabled={telcoInfo?.otpSended || false}
  217. label="Тип документа"
  218. required
  219. fullWidth
  220. variant="filled"
  221. value={telcoInfo?.doctype}
  222. select
  223. SelectProps={{ native: true }}
  224. onChange={(e: any) => {
  225. changeValue({ ...telcoInfo, doctype: e.target.value });
  226. }}
  227. >
  228. {docTypes.filter(d => clientDoctypeList.includes(d.code!)).sort((a: any, b: any) => b.code.localeCompare(a.code))
  229. .map((m) => (
  230. <option key={m.code} value={m.code}>
  231. {m.name}
  232. </option>
  233. ))}
  234. </BccInputText>
  235. </Grid>
  236. </Grid>
  237.  
  238. <Grid container justify="flex-end" spacing={2}>
  239. <Grid item>
  240. <BccButtonRed onClick={() => onBack()}>
  241. Завершить
  242. </BccButtonRed>
  243. </Grid>
  244. <Grid item>
  245. <BccButtonGreen onClick={() => onFurther()}>Далее</BccButtonGreen>
  246. </Grid>
  247. </Grid>
  248. </Paper>
  249. </form>
  250. );
  251. };
  252.  
  253. export default TelcoOTP;
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
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
stdout
Standard output is empty