@redneckz/wildless-cms-uni-blocks 0.14.652 → 0.14.653

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/bundle/api/RetailAPI/updateRefreshToken.d.ts +1 -0
  2. package/bundle/bundle.umd.js +38 -7
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/hooks/useInterval.d.ts +1 -0
  5. package/dist/api/RetailAPI/doRequest.js +1 -0
  6. package/dist/api/RetailAPI/doRequest.js.map +1 -1
  7. package/dist/api/RetailAPI/updateRefreshToken.d.ts +1 -0
  8. package/dist/api/RetailAPI/updateRefreshToken.js +31 -0
  9. package/dist/api/RetailAPI/updateRefreshToken.js.map +1 -0
  10. package/dist/components/CreditForm/CreditForm.js +2 -0
  11. package/dist/components/CreditForm/CreditForm.js.map +1 -1
  12. package/dist/components/CreditForm/CreditFormStatusTracker.js +8 -6
  13. package/dist/components/CreditForm/CreditFormStatusTracker.js.map +1 -1
  14. package/dist/hooks/useInterval.d.ts +1 -0
  15. package/dist/hooks/useInterval.js +14 -0
  16. package/dist/hooks/useInterval.js.map +1 -0
  17. package/lib/api/RetailAPI/doRequest.js +1 -0
  18. package/lib/api/RetailAPI/doRequest.js.map +1 -1
  19. package/lib/api/RetailAPI/updateRefreshToken.d.ts +1 -0
  20. package/lib/api/RetailAPI/updateRefreshToken.js +28 -0
  21. package/lib/api/RetailAPI/updateRefreshToken.js.map +1 -0
  22. package/lib/components/CreditForm/CreditForm.js +3 -1
  23. package/lib/components/CreditForm/CreditForm.js.map +1 -1
  24. package/lib/components/CreditForm/CreditFormStatusTracker.js +8 -6
  25. package/lib/components/CreditForm/CreditFormStatusTracker.js.map +1 -1
  26. package/lib/hooks/useInterval.d.ts +1 -0
  27. package/lib/hooks/useInterval.js +11 -0
  28. package/lib/hooks/useInterval.js.map +1 -0
  29. package/mobile/bundle/api/RetailAPI/updateRefreshToken.d.ts +1 -0
  30. package/mobile/bundle/bundle.umd.js +38 -7
  31. package/mobile/bundle/bundle.umd.min.js +1 -1
  32. package/mobile/bundle/hooks/useInterval.d.ts +1 -0
  33. package/mobile/dist/api/RetailAPI/doRequest.js +1 -0
  34. package/mobile/dist/api/RetailAPI/doRequest.js.map +1 -1
  35. package/mobile/dist/api/RetailAPI/updateRefreshToken.d.ts +1 -0
  36. package/mobile/dist/api/RetailAPI/updateRefreshToken.js +31 -0
  37. package/mobile/dist/api/RetailAPI/updateRefreshToken.js.map +1 -0
  38. package/mobile/dist/components/CreditForm/CreditForm.js +2 -0
  39. package/mobile/dist/components/CreditForm/CreditForm.js.map +1 -1
  40. package/mobile/dist/components/CreditForm/CreditFormStatusTracker.js +8 -6
  41. package/mobile/dist/components/CreditForm/CreditFormStatusTracker.js.map +1 -1
  42. package/mobile/dist/hooks/useInterval.d.ts +1 -0
  43. package/mobile/dist/hooks/useInterval.js +14 -0
  44. package/mobile/dist/hooks/useInterval.js.map +1 -0
  45. package/mobile/lib/api/RetailAPI/doRequest.js +1 -0
  46. package/mobile/lib/api/RetailAPI/doRequest.js.map +1 -1
  47. package/mobile/lib/api/RetailAPI/updateRefreshToken.d.ts +1 -0
  48. package/mobile/lib/api/RetailAPI/updateRefreshToken.js +28 -0
  49. package/mobile/lib/api/RetailAPI/updateRefreshToken.js.map +1 -0
  50. package/mobile/lib/components/CreditForm/CreditForm.js +3 -1
  51. package/mobile/lib/components/CreditForm/CreditForm.js.map +1 -1
  52. package/mobile/lib/components/CreditForm/CreditFormStatusTracker.js +8 -6
  53. package/mobile/lib/components/CreditForm/CreditFormStatusTracker.js.map +1 -1
  54. package/mobile/lib/hooks/useInterval.d.ts +1 -0
  55. package/mobile/lib/hooks/useInterval.js +11 -0
  56. package/mobile/lib/hooks/useInterval.js.map +1 -0
  57. package/mobile/src/api/RetailAPI/doRequest.ts +1 -0
  58. package/mobile/src/api/RetailAPI/updateRefreshToken.ts +42 -0
  59. package/mobile/src/components/CreditForm/CreditForm.tsx +4 -1
  60. package/mobile/src/components/CreditForm/CreditFormStatusTracker.tsx +3 -0
  61. package/mobile/src/hooks/useInterval.ts +14 -0
  62. package/package.json +1 -1
  63. package/src/api/RetailAPI/doRequest.ts +1 -0
  64. package/src/api/RetailAPI/updateRefreshToken.ts +42 -0
  65. package/src/components/CreditForm/CreditForm.fixture.tsx +7 -0
  66. package/src/components/CreditForm/CreditForm.tsx +4 -1
  67. package/src/components/CreditForm/CreditFormStatusTracker.tsx +3 -0
  68. package/src/hooks/useInterval.ts +14 -0
@@ -0,0 +1 @@
1
+ export declare const useInterval: (handler: (stop: () => void) => void, period: number) => () => any;
@@ -11,6 +11,7 @@ async function doRequest(url, method, body) {
11
11
  credentials: 'include',
12
12
  body: body ? JSON.stringify(body) : null,
13
13
  });
14
+ // TODO: add error handling
14
15
  return isJSON(response) ? response.json() : response;
15
16
  }
16
17
  exports.doRequest = doRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"doRequest.js","sourceRoot":"","sources":["../../../src/api/RetailAPI/doRequest.ts"],"names":[],"mappings":";;AAAA,8CAA6C;AAEtC,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,MAA8B,EAC9B,IAAU;IAEV,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,yBAAY,GAAG,GAAG,EAAE,EAAE;QACpD,MAAM;QACN,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,GAAG,uBAAuB,EAAE;SAC7B;QACD,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;KACzC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AACvD,CAAC;AAhBD,8BAgBC;AAED,2BAA2B;AAC3B,MAAM,MAAM,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,kBAAkB,CAAC;AAEnG,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACnC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAEpD,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC,CAAC"}
1
+ {"version":3,"file":"doRequest.js","sourceRoot":"","sources":["../../../src/api/RetailAPI/doRequest.ts"],"names":[],"mappings":";;AAAA,8CAA6C;AAEtC,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,MAA8B,EAC9B,IAAU;IAEV,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,yBAAY,GAAG,GAAG,EAAE,EAAE;QACpD,MAAM;QACN,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,GAAG,uBAAuB,EAAE;SAC7B;QACD,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;KACzC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AACvD,CAAC;AAjBD,8BAiBC;AAED,2BAA2B;AAC3B,MAAM,MAAM,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,kBAAkB,CAAC;AAEnG,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACnC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAEpD,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const updateRefreshToken: () => () => void;
@@ -0,0 +1,31 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.updateRefreshToken = void 0;
3
+ const doRequest_1 = require("./doRequest");
4
+ const PORTAL_NATURAL_URL = '/';
5
+ const UPDATING_INTERVAL = 60000 * 4;
6
+ const updateRefreshToken = () => {
7
+ const refreshToken = globalThis.sessionStorage?.getItem('refreshToken');
8
+ const accessToken = globalThis.sessionStorage?.getItem('accessToken');
9
+ const taskId = globalThis.localStorage.getItem('taskId');
10
+ if (!accessToken || !refreshToken || !taskId) {
11
+ globalThis.location.href = PORTAL_NATURAL_URL;
12
+ return () => null;
13
+ }
14
+ const timer = setInterval(async () => {
15
+ const res = await (0, doRequest_1.doRequest)('/auth/refresh', 'POST', {
16
+ // eslint-disable-next-line camelcase
17
+ refresh_token: refreshToken,
18
+ // eslint-disable-next-line camelcase
19
+ access_token: accessToken,
20
+ });
21
+ if (res instanceof Response) {
22
+ globalThis.location.href = PORTAL_NATURAL_URL;
23
+ return;
24
+ }
25
+ sessionStorage.setItem('refreshToken', res.refresh_token);
26
+ sessionStorage.setItem('accessToken', res.access_token);
27
+ }, UPDATING_INTERVAL);
28
+ return () => clearInterval(timer);
29
+ };
30
+ exports.updateRefreshToken = updateRefreshToken;
31
+ //# sourceMappingURL=updateRefreshToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateRefreshToken.js","sourceRoot":"","sources":["../../../src/api/RetailAPI/updateRefreshToken.ts"],"names":[],"mappings":";;AAAA,2CAAwC;AAOxC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,MAAM,iBAAiB,GAAG,KAAK,GAAG,CAAC,CAAC;AAE7B,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEzD,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,EAAE;QAC5C,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAE9C,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;KACnB;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACnC,MAAM,GAAG,GAAG,MAAM,IAAA,qBAAS,EAAoC,eAAe,EAAE,MAAM,EAAE;YACtF,qCAAqC;YACrC,aAAa,EAAE,YAAY;YAC3B,qCAAqC;YACrC,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;QAEH,IAAI,GAAG,YAAY,QAAQ,EAAE;YAC3B,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,kBAAkB,CAAC;YAE9C,OAAO;SACR;QAED,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1D,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAEtB,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC;AA9BW,QAAA,kBAAkB,sBA8B7B"}
@@ -3,6 +3,7 @@ exports.CreditForm = void 0;
3
3
  const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
4
  const uni_jsx_1 = require("@redneckz/uni-jsx");
5
5
  const hooks_1 = require("@redneckz/uni-jsx/lib/hooks");
6
+ const updateRefreshToken_1 = require("../../api/RetailAPI/updateRefreshToken");
6
7
  const BlockWrapper_1 = require("../../ui-kit/BlockWrapper");
7
8
  const style_1 = require("../../utils/style");
8
9
  const CalculatorCredit_1 = require("../CalculatorCredit/CalculatorCredit");
@@ -20,6 +21,7 @@ const WIZARD_TITLES = [
20
21
  ];
21
22
  exports.CreditForm = (0, uni_jsx_1.JSX)(({ className, ...rest }) => {
22
23
  const [step, setStep] = (0, hooks_1.useState)(0);
24
+ (0, hooks_1.useEffect)(updateRefreshToken_1.updateRefreshToken, []);
23
25
  const handleNextStep = (0, hooks_1.useCallback)(() => {
24
26
  setStep((_) => Math.min(_ + 1, WIZARD_STEPS));
25
27
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"CreditForm.js","sourceRoot":"","sources":["../../../src/components/CreditForm/CreditForm.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,uDAA6E;AAE7E,4DAAyD;AAEzD,6CAA0C;AAE1C,2EAAwE;AAExE,6DAA0D;AAC1D,qDAAkD;AAClD,+DAAyD;AAIzD,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,aAAa,GAAG;IACpB,EAAE;IACF,qBAAqB;IACrB,0BAA0B;IAC1B,6BAA6B;IAC7B,yBAAyB;IACzB,iBAAiB;CAClB,CAAC;AAEW,QAAA,UAAU,GAAG,IAAA,aAAG,EAAwB,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC9E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IAEpC,MAAM,cAAc,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACtC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAChD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACtC,uBAAuB;QACvB,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,sCAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAe,CAAC;IAExF,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,CAAC;IAC/B,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5D,OAAO,CACL,uBAAC,2BAAY,IAAC,SAAS,EAAE,IAAA,aAAK,EAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,cAAc,EAAC,KAAK,KAAK,IAAI,YACxF,iCAAK,SAAS,EAAC,6BAA6B,aACzC,WAAW,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACtC,uBAAC,uCAAkB,IAAC,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,GAAI,CACzF,EACD,gCAAK,SAAS,EAAC,0CAA0C,YACvD,uBAAC,+BAAc,IAEb,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,cAAc,EAC1B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EACR,WAAW;4BACT,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CACtB,uBAAC,mCAAgB,OACX;oCACF,KAAK,EAAE,qBAAqB;oCAC5B,QAAQ,EACN,wFAAwF;oCAC1F,UAAU,EAAE;wCACV,IAAI,EAAE,6CAA6C;qCACpD;iCACF,EACD,cAAc,EAAE,cAAc,GAC9B,CACH;4BACH,CAAC,CAAC,SAAS,IAvBV,MAAM,CAAC,IAAI,CAAC,CAyBjB,GACE,IACF,GACO,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"CreditForm.js","sourceRoot":"","sources":["../../../src/components/CreditForm/CreditForm.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,uDAAwF;AACxF,+EAA4E;AAE5E,4DAAyD;AAEzD,6CAA0C;AAE1C,2EAAwE;AAExE,6DAA0D;AAC1D,qDAAkD;AAClD,+DAAyD;AAIzD,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,aAAa,GAAG;IACpB,EAAE;IACF,qBAAqB;IACrB,0BAA0B;IAC1B,6BAA6B;IAC7B,yBAAyB;IACzB,iBAAiB;CAClB,CAAC;AAEW,QAAA,UAAU,GAAG,IAAA,aAAG,EAAwB,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC9E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IAEpC,IAAA,iBAAS,EAAC,uCAAkB,EAAE,EAAE,CAAC,CAAC;IAElC,MAAM,cAAc,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACtC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAChD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACtC,uBAAuB;QACvB,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,sCAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAe,CAAC;IAExF,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,CAAC;IAC/B,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAE5D,OAAO,CACL,uBAAC,2BAAY,IAAC,SAAS,EAAE,IAAA,aAAK,EAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,cAAc,EAAC,KAAK,KAAK,IAAI,YACxF,iCAAK,SAAS,EAAC,6BAA6B,aACzC,WAAW,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACtC,uBAAC,uCAAkB,IAAC,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,GAAI,CACzF,EACD,gCAAK,SAAS,EAAC,0CAA0C,YACvD,uBAAC,+BAAc,IAEb,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,cAAc,EAC1B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EACR,WAAW;4BACT,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CACtB,uBAAC,mCAAgB,OACX;oCACF,KAAK,EAAE,qBAAqB;oCAC5B,QAAQ,EACN,wFAAwF;oCAC1F,UAAU,EAAE;wCACV,IAAI,EAAE,6CAA6C;qCACpD;iCACF,EACD,cAAc,EAAE,cAAc,GAC9B,CACH;4BACH,CAAC,CAAC,SAAS,IAvBV,MAAM,CAAC,IAAI,CAAC,CAyBjB,GACE,IACF,GACO,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -21,13 +21,15 @@ exports.CreditFormStatusTracker = (0, uni_jsx_1.JSX)(() => {
21
21
  for (const signalType of SIGNAL_TYPES) {
22
22
  (0, sendSignalToProcess_1.sendSignalToProcess)({ signalType, taskId });
23
23
  }
24
- const trackStatus = () => (0, getTaskStatus_1.getTaskStatus)({ taskId }).then((res) => {
25
- if (res.statusCd && res.statusCd !== getTaskStatus_1.STATUS_TYPE.process) {
26
- clearInterval(pullingInterval);
27
- setStatus(res.statusCd);
28
- }
29
- });
24
+ const trackStatus = () => taskId &&
25
+ (0, getTaskStatus_1.getTaskStatus)({ taskId }).then((res) => {
26
+ if (res.statusCd && res.statusCd !== getTaskStatus_1.STATUS_TYPE.process) {
27
+ clearInterval(pullingInterval);
28
+ setStatus(res.statusCd);
29
+ }
30
+ });
30
31
  const pullingInterval = setInterval(trackStatus, 30000);
32
+ return () => clearInterval(pullingInterval);
31
33
  }, []);
32
34
  return renderStatus(status);
33
35
  });
@@ -1 +1 @@
1
- {"version":3,"file":"CreditFormStatusTracker.js","sourceRoot":"","sources":["../../../src/components/CreditForm/CreditFormStatusTracker.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,uDAAkE;AAClE,qEAA+E;AAC/E,iFAA+F;AAC/F,iEAA8D;AAC9D,+DAA4D;AAC5D,iEAA8D;AAC9D,+DAA4D;AAC5D,iEAA8D;AAE9D,MAAM,YAAY,GAAiB;IACjC,iCAAiC;IACjC,mCAAmC;CACpC,CAAC;AAEW,QAAA,uBAAuB,GAAG,IAAA,aAAG,EAAC,GAAG,EAAE;IAC9C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,2BAAW,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,IAAA,iCAAe,EAAS,QAAQ,CAAC,CAAC;IAEnD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE;YACrC,IAAA,yCAAmB,EAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;SAC7C;QAED,MAAM,WAAW,GAAG,GAAG,EAAE,CACvB,IAAA,6BAAa,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACrC,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,2BAAW,CAAC,OAAO,EAAE;gBACxD,aAAa,CAAC,eAAe,CAAC,CAAC;gBAC/B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;QAEL,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAE,EAAE;IAC3C,MAAM,WAAW,GAAqC;QACpD,UAAU,EAAE,uBAAC,2CAAoB,KAAG;QACpC,MAAM,EAAE,uBAAC,yCAAmB,KAAG;QAC/B,EAAE,EAAE,uBAAC,2CAAoB,KAAG;QAC5B,MAAM,EAAE,uBAAC,yCAAmB,KAAG;KAChC,CAAC;IAEF,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC,CAAC"}
1
+ {"version":3,"file":"CreditFormStatusTracker.js","sourceRoot":"","sources":["../../../src/components/CreditForm/CreditFormStatusTracker.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,uDAAkE;AAClE,qEAA+E;AAC/E,iFAA+F;AAC/F,iEAA8D;AAC9D,+DAA4D;AAC5D,iEAA8D;AAC9D,+DAA4D;AAC5D,iEAA8D;AAE9D,MAAM,YAAY,GAAiB;IACjC,iCAAiC;IACjC,mCAAmC;CACpC,CAAC;AAEW,QAAA,uBAAuB,GAAG,IAAA,aAAG,EAAC,GAAG,EAAE;IAC9C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,2BAAW,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,IAAA,iCAAe,EAAS,QAAQ,CAAC,CAAC;IAEnD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE;YACrC,IAAA,yCAAmB,EAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;SAC7C;QAED,MAAM,WAAW,GAAG,GAAG,EAAE,CACvB,MAAM;YACN,IAAA,6BAAa,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACrC,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,2BAAW,CAAC,OAAO,EAAE;oBACxD,aAAa,CAAC,eAAe,CAAC,CAAC;oBAC/B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;iBACzB;YACH,CAAC,CAAC,CAAC;QAEL,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAExD,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAE,EAAE;IAC3C,MAAM,WAAW,GAAqC;QACpD,UAAU,EAAE,uBAAC,2CAAoB,KAAG;QACpC,MAAM,EAAE,uBAAC,yCAAmB,KAAG;QAC/B,EAAE,EAAE,uBAAC,2CAAoB,KAAG;QAC5B,MAAM,EAAE,uBAAC,yCAAmB,KAAG;KAChC,CAAC;IAEF,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const useInterval: (handler: (stop: () => void) => void, period: number) => () => any;
@@ -0,0 +1,14 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.useInterval = void 0;
3
+ const hooks_1 = require("@redneckz/uni-jsx/lib/hooks");
4
+ const useInterval = (handler, period) => {
5
+ const timer = (0, hooks_1.useRef)(null);
6
+ const clearTimer = (0, hooks_1.useCallback)(() => timer.current && clearInterval(timer.current), []);
7
+ (0, hooks_1.useEffect)(() => {
8
+ timer.current = setInterval(() => handler(clearTimer), period);
9
+ return clearTimer;
10
+ }, [handler, period]);
11
+ return clearTimer;
12
+ };
13
+ exports.useInterval = useInterval;
14
+ //# sourceMappingURL=useInterval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInterval.js","sourceRoot":"","sources":["../../src/hooks/useInterval.ts"],"names":[],"mappings":";;AAAA,uDAA6E;AAEtE,MAAM,WAAW,GAAG,CAAC,OAAmC,EAAE,MAAc,EAAE,EAAE;IACjF,MAAM,KAAK,GAAG,IAAA,cAAM,EAAa,IAAI,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,OAAiB,CAAC,EAAE,EAAE,CAAC,CAAC;IAElG,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QAE/D,OAAO,UAAU,CAAC;IACpB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtB,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAXW,QAAA,WAAW,eAWtB"}
@@ -9,6 +9,7 @@ export async function doRequest(url, method, body) {
9
9
  credentials: 'include',
10
10
  body: body ? JSON.stringify(body) : null,
11
11
  });
12
+ // TODO: add error handling
12
13
  return isJSON(response) ? response.json() : response;
13
14
  }
14
15
  // TODO: Need delete isJSON
@@ -1 +1 @@
1
- {"version":3,"file":"doRequest.js","sourceRoot":"","sources":["../../../src/api/RetailAPI/doRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,MAA8B,EAC9B,IAAU;IAEV,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,GAAG,GAAG,EAAE,EAAE;QACpD,MAAM;QACN,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,GAAG,uBAAuB,EAAE;SAC7B;QACD,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;KACzC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AACvD,CAAC;AAED,2BAA2B;AAC3B,MAAM,MAAM,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,kBAAkB,CAAC;AAEnG,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACnC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAEpD,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC,CAAC"}
1
+ {"version":3,"file":"doRequest.js","sourceRoot":"","sources":["../../../src/api/RetailAPI/doRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,MAA8B,EAC9B,IAAU;IAEV,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,GAAG,GAAG,EAAE,EAAE;QACpD,MAAM;QACN,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,GAAG,uBAAuB,EAAE;SAC7B;QACD,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;KACzC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AACvD,CAAC;AAED,2BAA2B;AAC3B,MAAM,MAAM,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,kBAAkB,CAAC;AAEnG,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACnC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAEpD,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const updateRefreshToken: () => () => void;
@@ -0,0 +1,28 @@
1
+ import { doRequest } from './doRequest.js';
2
+ const PORTAL_NATURAL_URL = '/';
3
+ const UPDATING_INTERVAL = 60000 * 4;
4
+ export const updateRefreshToken = () => {
5
+ const refreshToken = globalThis.sessionStorage?.getItem('refreshToken');
6
+ const accessToken = globalThis.sessionStorage?.getItem('accessToken');
7
+ const taskId = globalThis.localStorage.getItem('taskId');
8
+ if (!accessToken || !refreshToken || !taskId) {
9
+ globalThis.location.href = PORTAL_NATURAL_URL;
10
+ return () => null;
11
+ }
12
+ const timer = setInterval(async () => {
13
+ const res = await doRequest('/auth/refresh', 'POST', {
14
+ // eslint-disable-next-line camelcase
15
+ refresh_token: refreshToken,
16
+ // eslint-disable-next-line camelcase
17
+ access_token: accessToken,
18
+ });
19
+ if (res instanceof Response) {
20
+ globalThis.location.href = PORTAL_NATURAL_URL;
21
+ return;
22
+ }
23
+ sessionStorage.setItem('refreshToken', res.refresh_token);
24
+ sessionStorage.setItem('accessToken', res.access_token);
25
+ }, UPDATING_INTERVAL);
26
+ return () => clearInterval(timer);
27
+ };
28
+ //# sourceMappingURL=updateRefreshToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateRefreshToken.js","sourceRoot":"","sources":["../../../src/api/RetailAPI/updateRefreshToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAOxC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,MAAM,iBAAiB,GAAG,KAAK,GAAG,CAAC,CAAC;AAEpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEzD,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,EAAE;QAC5C,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAE9C,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;KACnB;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACnC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAoC,eAAe,EAAE,MAAM,EAAE;YACtF,qCAAqC;YACrC,aAAa,EAAE,YAAY;YAC3B,qCAAqC;YACrC,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;QAEH,IAAI,GAAG,YAAY,QAAQ,EAAE;YAC3B,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,kBAAkB,CAAC;YAE9C,OAAO;SACR;QAED,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;QAC1D,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAEtB,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
- import { useCallback, useMemo, useState } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { useCallback, useEffect, useMemo, useState } from '@redneckz/uni-jsx/lib/hooks';
4
+ import { updateRefreshToken } from '../../api/RetailAPI/updateRefreshToken.js';
4
5
  import { BlockWrapper } from '../../ui-kit/BlockWrapper.js';
5
6
  import { style } from '../../utils/style.js';
6
7
  import { CalculatorCredit } from '../CalculatorCredit/CalculatorCredit.js';
@@ -18,6 +19,7 @@ const WIZARD_TITLES = [
18
19
  ];
19
20
  export const CreditForm = JSX(({ className, ...rest }) => {
20
21
  const [step, setStep] = useState(0);
22
+ useEffect(updateRefreshToken, []);
21
23
  const handleNextStep = useCallback(() => {
22
24
  setStep((_) => Math.min(_ + 1, WIZARD_STEPS));
23
25
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"CreditForm.js","sourceRoot":"","sources":["../../../src/components/CreditForm/CreditForm.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,MAAM,aAAa,GAAG;IACpB,EAAE;IACF,qBAAqB;IACrB,0BAA0B;IAC1B,6BAA6B;IAC7B,yBAAyB;IACzB,iBAAiB;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAwB,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC9E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEpC,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAChD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,uBAAuB;QACvB,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAe,CAAC;IAExF,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,CAAC;IAC/B,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,OAAO,CACL,KAAC,YAAY,IAAC,SAAS,EAAE,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,cAAc,EAAC,KAAK,KAAK,IAAI,YACxF,eAAK,SAAS,EAAC,6BAA6B,aACzC,WAAW,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACtC,KAAC,kBAAkB,IAAC,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,GAAI,CACzF,EACD,cAAK,SAAS,EAAC,0CAA0C,YACvD,KAAC,cAAc,IAEb,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,cAAc,EAC1B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EACR,WAAW;4BACT,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CACtB,KAAC,gBAAgB,OACX;oCACF,KAAK,EAAE,qBAAqB;oCAC5B,QAAQ,EACN,wFAAwF;oCAC1F,UAAU,EAAE;wCACV,IAAI,EAAE,6CAA6C;qCACpD;iCACF,EACD,cAAc,EAAE,cAAc,GAC9B,CACH;4BACH,CAAC,CAAC,SAAS,IAvBV,MAAM,CAAC,IAAI,CAAC,CAyBjB,GACE,IACF,GACO,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"CreditForm.js","sourceRoot":"","sources":["../../../src/components/CreditForm/CreditForm.tsx"],"names":[],"mappings":"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"}
@@ -19,13 +19,15 @@ export const CreditFormStatusTracker = JSX(() => {
19
19
  for (const signalType of SIGNAL_TYPES) {
20
20
  sendSignalToProcess({ signalType, taskId });
21
21
  }
22
- const trackStatus = () => getTaskStatus({ taskId }).then((res) => {
23
- if (res.statusCd && res.statusCd !== STATUS_TYPE.process) {
24
- clearInterval(pullingInterval);
25
- setStatus(res.statusCd);
26
- }
27
- });
22
+ const trackStatus = () => taskId &&
23
+ getTaskStatus({ taskId }).then((res) => {
24
+ if (res.statusCd && res.statusCd !== STATUS_TYPE.process) {
25
+ clearInterval(pullingInterval);
26
+ setStatus(res.statusCd);
27
+ }
28
+ });
28
29
  const pullingInterval = setInterval(trackStatus, 30000);
30
+ return () => clearInterval(pullingInterval);
29
31
  }, []);
30
32
  return renderStatus(status);
31
33
  });
@@ -1 +1 @@
1
- {"version":3,"file":"CreditFormStatusTracker.js","sourceRoot":"","sources":["../../../src/components/CreditForm/CreditFormStatusTracker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAmB,MAAM,yCAAyC,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,YAAY,GAAiB;IACjC,iCAAiC;IACjC,mCAAmC;CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC,GAAG,EAAE;IAC9C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,eAAe,CAAS,QAAQ,CAAC,CAAC;IAEnD,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE;YACrC,mBAAmB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;SAC7C;QAED,MAAM,WAAW,GAAG,GAAG,EAAE,CACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACrC,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,CAAC,OAAO,EAAE;gBACxD,aAAa,CAAC,eAAe,CAAC,CAAC;gBAC/B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;QAEL,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAE,EAAE;IAC3C,MAAM,WAAW,GAAqC;QACpD,UAAU,EAAE,KAAC,oBAAoB,KAAG;QACpC,MAAM,EAAE,KAAC,mBAAmB,KAAG;QAC/B,EAAE,EAAE,KAAC,oBAAoB,KAAG;QAC5B,MAAM,EAAE,KAAC,mBAAmB,KAAG;KAChC,CAAC;IAEF,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC,CAAC"}
1
+ {"version":3,"file":"CreditFormStatusTracker.js","sourceRoot":"","sources":["../../../src/components/CreditForm/CreditFormStatusTracker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAmB,MAAM,yCAAyC,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,YAAY,GAAiB;IACjC,iCAAiC;IACjC,mCAAmC;CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC,GAAG,EAAE;IAC9C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,eAAe,CAAS,QAAQ,CAAC,CAAC;IAEnD,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE;YACrC,mBAAmB,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;SAC7C;QAED,MAAM,WAAW,GAAG,GAAG,EAAE,CACvB,MAAM;YACN,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACrC,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,CAAC,OAAO,EAAE;oBACxD,aAAa,CAAC,eAAe,CAAC,CAAC;oBAC/B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;iBACzB;YACH,CAAC,CAAC,CAAC;QAEL,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAExD,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAE,EAAE;IAC3C,MAAM,WAAW,GAAqC;QACpD,UAAU,EAAE,KAAC,oBAAoB,KAAG;QACpC,MAAM,EAAE,KAAC,mBAAmB,KAAG;QAC/B,EAAE,EAAE,KAAC,oBAAoB,KAAG;QAC5B,MAAM,EAAE,KAAC,mBAAmB,KAAG;KAChC,CAAC;IAEF,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const useInterval: (handler: (stop: () => void) => void, period: number) => () => any;
@@ -0,0 +1,11 @@
1
+ import { useCallback, useEffect, useRef } from '@redneckz/uni-jsx/lib/hooks';
2
+ export const useInterval = (handler, period) => {
3
+ const timer = useRef(null);
4
+ const clearTimer = useCallback(() => timer.current && clearInterval(timer.current), []);
5
+ useEffect(() => {
6
+ timer.current = setInterval(() => handler(clearTimer), period);
7
+ return clearTimer;
8
+ }, [handler, period]);
9
+ return clearTimer;
10
+ };
11
+ //# sourceMappingURL=useInterval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInterval.js","sourceRoot":"","sources":["../../src/hooks/useInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAE7E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAmC,EAAE,MAAc,EAAE,EAAE;IACjF,MAAM,KAAK,GAAG,MAAM,CAAa,IAAI,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,OAAiB,CAAC,EAAE,EAAE,CAAC,CAAC;IAElG,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QAE/D,OAAO,UAAU,CAAC;IACpB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtB,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"}
@@ -15,6 +15,7 @@ export async function doRequest<R>(
15
15
  body: body ? JSON.stringify(body) : null,
16
16
  });
17
17
 
18
+ // TODO: add error handling
18
19
  return isJSON(response) ? response.json() : response;
19
20
  }
20
21
 
@@ -0,0 +1,42 @@
1
+ import { doRequest } from './doRequest';
2
+
3
+ interface UpdateRefreshTokenBody {
4
+ refresh_token: string;
5
+ access_token: string;
6
+ }
7
+
8
+ const PORTAL_NATURAL_URL = '/';
9
+
10
+ const UPDATING_INTERVAL = 60000 * 4;
11
+
12
+ export const updateRefreshToken = () => {
13
+ const refreshToken = globalThis.sessionStorage?.getItem('refreshToken');
14
+ const accessToken = globalThis.sessionStorage?.getItem('accessToken');
15
+ const taskId = globalThis.localStorage.getItem('taskId');
16
+
17
+ if (!accessToken || !refreshToken || !taskId) {
18
+ globalThis.location.href = PORTAL_NATURAL_URL;
19
+
20
+ return () => null;
21
+ }
22
+
23
+ const timer = setInterval(async () => {
24
+ const res = await doRequest<UpdateRefreshTokenBody | Response>('/auth/refresh', 'POST', {
25
+ // eslint-disable-next-line camelcase
26
+ refresh_token: refreshToken,
27
+ // eslint-disable-next-line camelcase
28
+ access_token: accessToken,
29
+ });
30
+
31
+ if (res instanceof Response) {
32
+ globalThis.location.href = PORTAL_NATURAL_URL;
33
+
34
+ return;
35
+ }
36
+
37
+ sessionStorage.setItem('refreshToken', res.refresh_token);
38
+ sessionStorage.setItem('accessToken', res.access_token);
39
+ }, UPDATING_INTERVAL);
40
+
41
+ return () => clearInterval(timer);
42
+ };
@@ -1,5 +1,6 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { useCallback, useMemo, useState } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { useCallback, useEffect, useMemo, useState } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { updateRefreshToken } from '../../api/RetailAPI/updateRefreshToken';
3
4
  import { type SectionsProps } from '../../model/InputSectionsType';
4
5
  import { BlockWrapper } from '../../ui-kit/BlockWrapper';
5
6
  import { type UniBlockProps } from '../../UniBlock/UniBlockProps';
@@ -27,6 +28,8 @@ const WIZARD_TITLES = [
27
28
  export const CreditForm = JSX<CreditFormWizardProps>(({ className, ...rest }) => {
28
29
  const [step, setStep] = useState(0);
29
30
 
31
+ useEffect(updateRefreshToken, []);
32
+
30
33
  const handleNextStep = useCallback(() => {
31
34
  setStep((_) => Math.min(_ + 1, WIZARD_STEPS));
32
35
  }, []);
@@ -23,6 +23,7 @@ export const CreditFormStatusTracker = JSX(() => {
23
23
  }
24
24
 
25
25
  const trackStatus = () =>
26
+ taskId &&
26
27
  getTaskStatus({ taskId }).then((res) => {
27
28
  if (res.statusCd && res.statusCd !== STATUS_TYPE.process) {
28
29
  clearInterval(pullingInterval);
@@ -31,6 +32,8 @@ export const CreditFormStatusTracker = JSX(() => {
31
32
  });
32
33
 
33
34
  const pullingInterval = setInterval(trackStatus, 30000);
35
+
36
+ return () => clearInterval(pullingInterval);
34
37
  }, []);
35
38
 
36
39
  return renderStatus(status);
@@ -0,0 +1,14 @@
1
+ import { useCallback, useEffect, useRef } from '@redneckz/uni-jsx/lib/hooks';
2
+
3
+ export const useInterval = (handler: (stop: () => void) => void, period: number) => {
4
+ const timer = useRef<any | null>(null);
5
+ const clearTimer = useCallback(() => timer.current && clearInterval(timer.current as number), []);
6
+
7
+ useEffect(() => {
8
+ timer.current = setInterval(() => handler(clearTimer), period);
9
+
10
+ return clearTimer;
11
+ }, [handler, period]);
12
+
13
+ return clearTimer;
14
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.14.652",
3
+ "version": "0.14.653",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -15,6 +15,7 @@ export async function doRequest<R>(
15
15
  body: body ? JSON.stringify(body) : null,
16
16
  });
17
17
 
18
+ // TODO: add error handling
18
19
  return isJSON(response) ? response.json() : response;
19
20
  }
20
21
 
@@ -0,0 +1,42 @@
1
+ import { doRequest } from './doRequest';
2
+
3
+ interface UpdateRefreshTokenBody {
4
+ refresh_token: string;
5
+ access_token: string;
6
+ }
7
+
8
+ const PORTAL_NATURAL_URL = '/';
9
+
10
+ const UPDATING_INTERVAL = 60000 * 4;
11
+
12
+ export const updateRefreshToken = () => {
13
+ const refreshToken = globalThis.sessionStorage?.getItem('refreshToken');
14
+ const accessToken = globalThis.sessionStorage?.getItem('accessToken');
15
+ const taskId = globalThis.localStorage.getItem('taskId');
16
+
17
+ if (!accessToken || !refreshToken || !taskId) {
18
+ globalThis.location.href = PORTAL_NATURAL_URL;
19
+
20
+ return () => null;
21
+ }
22
+
23
+ const timer = setInterval(async () => {
24
+ const res = await doRequest<UpdateRefreshTokenBody | Response>('/auth/refresh', 'POST', {
25
+ // eslint-disable-next-line camelcase
26
+ refresh_token: refreshToken,
27
+ // eslint-disable-next-line camelcase
28
+ access_token: accessToken,
29
+ });
30
+
31
+ if (res instanceof Response) {
32
+ globalThis.location.href = PORTAL_NATURAL_URL;
33
+
34
+ return;
35
+ }
36
+
37
+ sessionStorage.setItem('refreshToken', res.refresh_token);
38
+ sessionStorage.setItem('accessToken', res.access_token);
39
+ }, UPDATING_INTERVAL);
40
+
41
+ return () => clearInterval(timer);
42
+ };
@@ -3,6 +3,13 @@ import { DialogManager } from '../../ui-kit/DialogManager/DialogManager';
3
3
  import { PopupManager } from '../../ui-kit/PopupManager/PopupManager';
4
4
  import { CreditForm } from './CreditForm';
5
5
 
6
+ const MOCK_TOKEN = 'mockKEY';
7
+ const MOCK_TASK_ID = '111111';
8
+
9
+ globalThis.sessionStorage?.setItem('refreshToken', MOCK_TOKEN);
10
+ globalThis.sessionStorage?.setItem('accessToken', MOCK_TOKEN);
11
+ globalThis.localStorage.setItem('taskId', MOCK_TASK_ID);
12
+
6
13
  export default {
7
14
  default: (
8
15
  <div>
@@ -1,5 +1,6 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { useCallback, useMemo, useState } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { useCallback, useEffect, useMemo, useState } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { updateRefreshToken } from '../../api/RetailAPI/updateRefreshToken';
3
4
  import { type SectionsProps } from '../../model/InputSectionsType';
4
5
  import { BlockWrapper } from '../../ui-kit/BlockWrapper';
5
6
  import { type UniBlockProps } from '../../UniBlock/UniBlockProps';
@@ -27,6 +28,8 @@ const WIZARD_TITLES = [
27
28
  export const CreditForm = JSX<CreditFormWizardProps>(({ className, ...rest }) => {
28
29
  const [step, setStep] = useState(0);
29
30
 
31
+ useEffect(updateRefreshToken, []);
32
+
30
33
  const handleNextStep = useCallback(() => {
31
34
  setStep((_) => Math.min(_ + 1, WIZARD_STEPS));
32
35
  }, []);
@@ -23,6 +23,7 @@ export const CreditFormStatusTracker = JSX(() => {
23
23
  }
24
24
 
25
25
  const trackStatus = () =>
26
+ taskId &&
26
27
  getTaskStatus({ taskId }).then((res) => {
27
28
  if (res.statusCd && res.statusCd !== STATUS_TYPE.process) {
28
29
  clearInterval(pullingInterval);
@@ -31,6 +32,8 @@ export const CreditFormStatusTracker = JSX(() => {
31
32
  });
32
33
 
33
34
  const pullingInterval = setInterval(trackStatus, 30000);
35
+
36
+ return () => clearInterval(pullingInterval);
34
37
  }, []);
35
38
 
36
39
  return renderStatus(status);
@@ -0,0 +1,14 @@
1
+ import { useCallback, useEffect, useRef } from '@redneckz/uni-jsx/lib/hooks';
2
+
3
+ export const useInterval = (handler: (stop: () => void) => void, period: number) => {
4
+ const timer = useRef<any | null>(null);
5
+ const clearTimer = useCallback(() => timer.current && clearInterval(timer.current as number), []);
6
+
7
+ useEffect(() => {
8
+ timer.current = setInterval(() => handler(clearTimer), period);
9
+
10
+ return clearTimer;
11
+ }, [handler, period]);
12
+
13
+ return clearTimer;
14
+ };