@redneckz/wildless-cms-uni-blocks 0.14.713 → 0.14.714

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 (65) hide show
  1. package/bundle/bundle.umd.js +4 -5
  2. package/bundle/bundle.umd.min.js +1 -1
  3. package/bundle/hooks/useAsyncEffect.d.ts +1 -0
  4. package/bundle/services/retail/mockLocalStorage.d.ts +1 -0
  5. package/dist/api/RetailAPI/sendCode.js +3 -4
  6. package/dist/api/RetailAPI/sendCode.js.map +1 -1
  7. package/dist/hooks/useAsyncEffect.d.ts +1 -0
  8. package/dist/hooks/useAsyncEffect.js +15 -0
  9. package/dist/hooks/useAsyncEffect.js.map +1 -0
  10. package/dist/services/retail/mockLocalStorage.d.ts +1 -0
  11. package/dist/services/retail/mockLocalStorage.js +35 -0
  12. package/dist/services/retail/mockLocalStorage.js.map +1 -0
  13. package/dist/setup-fixture.js +11 -0
  14. package/dist/setup-fixture.js.map +1 -1
  15. package/lib/api/RetailAPI/sendCode.js +4 -5
  16. package/lib/api/RetailAPI/sendCode.js.map +1 -1
  17. package/lib/components/CreditCardForm/CreditCardForm.fixture.d.ts +1 -1
  18. package/lib/components/CreditCardForm/CreditCardForm.fixture.mobile.d.ts +1 -1
  19. package/lib/components/CreditForm/CreditForm.fixture.d.ts +1 -1
  20. package/lib/components/CreditForm/CreditForm.fixture.mobile.d.ts +1 -1
  21. package/lib/hooks/useAsyncEffect.d.ts +1 -0
  22. package/lib/hooks/useAsyncEffect.js +12 -0
  23. package/lib/hooks/useAsyncEffect.js.map +1 -0
  24. package/lib/services/retail/mockLocalStorage.d.ts +1 -0
  25. package/lib/services/retail/mockLocalStorage.js +32 -0
  26. package/lib/services/retail/mockLocalStorage.js.map +1 -0
  27. package/lib/setup-fixture.js +11 -0
  28. package/lib/setup-fixture.js.map +1 -1
  29. package/mobile/bundle/bundle.umd.js +4 -5
  30. package/mobile/bundle/bundle.umd.min.js +1 -1
  31. package/mobile/bundle/hooks/useAsyncEffect.d.ts +1 -0
  32. package/mobile/bundle/services/retail/mockLocalStorage.d.ts +1 -0
  33. package/mobile/dist/api/RetailAPI/sendCode.js +3 -4
  34. package/mobile/dist/api/RetailAPI/sendCode.js.map +1 -1
  35. package/mobile/dist/hooks/useAsyncEffect.d.ts +1 -0
  36. package/mobile/dist/hooks/useAsyncEffect.js +15 -0
  37. package/mobile/dist/hooks/useAsyncEffect.js.map +1 -0
  38. package/mobile/dist/services/retail/mockLocalStorage.d.ts +1 -0
  39. package/mobile/dist/services/retail/mockLocalStorage.js +35 -0
  40. package/mobile/dist/services/retail/mockLocalStorage.js.map +1 -0
  41. package/mobile/dist/setup-fixture.js +11 -0
  42. package/mobile/dist/setup-fixture.js.map +1 -1
  43. package/mobile/lib/api/RetailAPI/sendCode.js +4 -5
  44. package/mobile/lib/api/RetailAPI/sendCode.js.map +1 -1
  45. package/mobile/lib/hooks/useAsyncEffect.d.ts +1 -0
  46. package/mobile/lib/hooks/useAsyncEffect.js +12 -0
  47. package/mobile/lib/hooks/useAsyncEffect.js.map +1 -0
  48. package/mobile/lib/services/retail/mockLocalStorage.d.ts +1 -0
  49. package/mobile/lib/services/retail/mockLocalStorage.js +32 -0
  50. package/mobile/lib/services/retail/mockLocalStorage.js.map +1 -0
  51. package/mobile/lib/setup-fixture.js +11 -0
  52. package/mobile/lib/setup-fixture.js.map +1 -1
  53. package/mobile/src/api/RetailAPI/sendCode.ts +4 -15
  54. package/mobile/src/hooks/useAsyncEffect.ts +16 -0
  55. package/mobile/src/services/retail/mockLocalStorage.ts +40 -0
  56. package/mobile/src/setup-fixture.ts +12 -0
  57. package/package.json +1 -1
  58. package/src/api/RetailAPI/sendCode.ts +4 -15
  59. package/src/components/CreditCardForm/CreditCardForm.fixture.mobile.tsx +14 -18
  60. package/src/components/CreditCardForm/CreditCardForm.fixture.tsx +14 -18
  61. package/src/components/CreditForm/CreditForm.fixture.mobile.tsx +19 -23
  62. package/src/components/CreditForm/CreditForm.fixture.tsx +19 -23
  63. package/src/hooks/useAsyncEffect.ts +16 -0
  64. package/src/services/retail/mockLocalStorage.ts +40 -0
  65. package/src/setup-fixture.ts +12 -0
@@ -0,0 +1 @@
1
+ export declare function useAsyncEffect<Deps extends any[], R>(effect: () => Promise<R | (() => void)>, deps: Deps): void;
@@ -0,0 +1 @@
1
+ export declare const mockLocalStorage: () => Promise<void>;
@@ -1,9 +1,8 @@
1
1
  Object.defineProperty(exports, "__esModule", { value: true });
2
2
  exports.sendCode = void 0;
3
3
  const doRequest_1 = require("./doRequest");
4
- const sendCode = (body) => (0, doRequest_1.fetchRetailJSON)('/sms/sendCode', 'POST', body).then((res) => !isErrorResult(res, body.phoneNumber));
4
+ const sendCode = (body) => (0, doRequest_1.doRequest)('/sms/sendCode', 'POST', body)
5
+ .then((res) => res.text())
6
+ .then((text) => text === 'OK');
5
7
  exports.sendCode = sendCode;
6
- const isErrorResult = (res, phoneNumber) => Boolean(res) &&
7
- typeof res !== 'string' &&
8
- Boolean(res?.errorMessage?.startsWith(`Too many request for phoneNumber [${phoneNumber}]`));
9
8
  //# sourceMappingURL=sendCode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sendCode.js","sourceRoot":"","sources":["../../../src/api/RetailAPI/sendCode.ts"],"names":[],"mappings":";;AAAA,2CAA8C;AAYvC,MAAM,QAAQ,GAAG,CAAC,IAAkB,EAAE,EAAE,CAC7C,IAAA,2BAAe,EAAmC,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CACnF,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAC/C,CAAC;AAHS,QAAA,QAAQ,YAGjB;AAEJ,MAAM,aAAa,GAAG,CACpB,GAA4C,EAC5C,WAAmB,EACS,EAAE,CAC9B,OAAO,CAAC,GAAG,CAAC;IACZ,OAAO,GAAG,KAAK,QAAQ;IACvB,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,CAAC,qCAAqC,WAAW,GAAG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"sendCode.js","sourceRoot":"","sources":["../../../src/api/RetailAPI/sendCode.ts"],"names":[],"mappings":";;AAAA,2CAAwC;AASjC,MAAM,QAAQ,GAAG,CAAC,IAAkB,EAAE,EAAE,CAC7C,IAAA,qBAAS,EAAC,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC;KACrC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;KACzB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAHtB,QAAA,QAAQ,YAGc"}
@@ -0,0 +1 @@
1
+ export declare function useAsyncEffect<Deps extends any[], R>(effect: () => Promise<R | (() => void)>, deps: Deps): void;
@@ -0,0 +1,15 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.useAsyncEffect = void 0;
3
+ const hooks_1 = require("@redneckz/uni-jsx/lib/hooks");
4
+ function useAsyncEffect(effect, deps) {
5
+ (0, hooks_1.useEffect)(() => {
6
+ const free = effect();
7
+ return () => {
8
+ free.then((_) => {
9
+ _ instanceof Function && _();
10
+ });
11
+ };
12
+ }, deps);
13
+ }
14
+ exports.useAsyncEffect = useAsyncEffect;
15
+ //# sourceMappingURL=useAsyncEffect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAsyncEffect.js","sourceRoot":"","sources":["../../src/hooks/useAsyncEffect.ts"],"names":[],"mappings":";;AAAA,uDAAwD;AAExD,SAAgB,cAAc,CAC5B,MAAuC,EACvC,IAAU;IAEV,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QAEtB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACd,CAAC,YAAY,QAAQ,IAAI,CAAC,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAbD,wCAaC"}
@@ -0,0 +1 @@
1
+ export declare const mockLocalStorage: () => Promise<void>;
@@ -0,0 +1,35 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.mockLocalStorage = void 0;
3
+ const checkCode_1 = require("../../api/RetailAPI/checkCode");
4
+ const createDraftTask_1 = require("../../api/RetailAPI/createDraftTask");
5
+ const createUserProfile_1 = require("../../api/RetailAPI/createUserProfile");
6
+ const sendCode_1 = require("../../api/RetailAPI/sendCode");
7
+ const PHONE = '+11111111111';
8
+ const PROGRAM_ID = '13';
9
+ const mockLocalStorage = async () => {
10
+ const programId = globalThis.localStorage.getItem('programId') ?? PROGRAM_ID;
11
+ const profileId = globalThis.localStorage.getItem('profileId') ??
12
+ (await (0, createUserProfile_1.createUserProfile)({ profile: { phone: PHONE } }));
13
+ await (0, sendCode_1.sendCode)({
14
+ phoneNumber: PHONE,
15
+ smsCodesSetName: { key: 'AUTHENTICATION' },
16
+ });
17
+ await (0, checkCode_1.checkCode)({
18
+ smsCodesSetName: { key: 'AUTHENTICATION' },
19
+ smsText: '1234',
20
+ });
21
+ const task = {
22
+ taskId: globalThis.localStorage.getItem('taskId'),
23
+ participantId: globalThis.localStorage.getItem('participantId'),
24
+ };
25
+ if (!task.taskId || !task.participantId) {
26
+ const draft = await (0, createDraftTask_1.createDraftTask)({ profileId: Number(profileId), programId });
27
+ Object.assign(task, draft);
28
+ }
29
+ globalThis.localStorage.setItem('programId', programId);
30
+ globalThis.localStorage.setItem('profileId', String(profileId));
31
+ globalThis.localStorage.setItem('taskId', String(task.taskId));
32
+ globalThis.localStorage.setItem('participantId', String(task.participantId));
33
+ };
34
+ exports.mockLocalStorage = mockLocalStorage;
35
+ //# sourceMappingURL=mockLocalStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockLocalStorage.js","sourceRoot":"","sources":["../../../src/services/retail/mockLocalStorage.ts"],"names":[],"mappings":";;AAAA,6DAA0D;AAC1D,yEAAsE;AACtE,6EAA0E;AAC1E,2DAAwD;AAExD,MAAM,KAAK,GAAG,cAAc,CAAC;AAC7B,MAAM,UAAU,GAAG,IAAI,CAAC;AAEjB,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC;IAE7E,MAAM,SAAS,GACb,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;QAC5C,CAAC,MAAM,IAAA,qCAAiB,EAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAE3D,MAAM,IAAA,mBAAQ,EAAC;QACb,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE;KAC3C,CAAC,CAAC;IAEH,MAAM,IAAA,qBAAS,EAAC;QACd,eAAe,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE;QAC1C,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC;QACjD,aAAa,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC;KAChE,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;QACvC,MAAM,KAAK,GAAG,MAAM,IAAA,iCAAe,EAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACjF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KAC5B;IAED,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACxD,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC/E,CAAC,CAAC;AA/BW,QAAA,gBAAgB,oBA+B3B"}
@@ -5,8 +5,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  require("@redneckz/uni-jsx/lib/setup.react");
6
6
  const react_1 = require("react");
7
7
  const handlerDecorator_1 = require("./external/handlerDecorator");
8
+ const locationNavigator_1 = require("./external/locationNavigator");
8
9
  const useRouter_1 = require("./external/useRouter");
9
10
  const ProjectSettings_1 = require("./ProjectSettings");
11
+ const noop_1 = require("./utils/noop");
10
12
  const url_1 = require("./utils/url");
11
13
  const wlc_json_1 = __importDefault(require("./wlc.json"));
12
14
  ProjectSettings_1.projectSettings.setup(wlc_json_1.default);
@@ -44,4 +46,13 @@ handlerDecorator_1.handlerDecorator.setup((handler) => (ev) => {
44
46
  }
45
47
  handler(ev);
46
48
  });
49
+ locationNavigator_1.locationNavigator.setup(() => ({
50
+ assign: noop_1.noop,
51
+ get href() {
52
+ return globalThis.location.href;
53
+ },
54
+ get origin() {
55
+ return globalThis.location.origin;
56
+ },
57
+ }));
47
58
  //# sourceMappingURL=setup-fixture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-fixture.js","sourceRoot":"","sources":["../src/setup-fixture.ts"],"names":[],"mappings":";;;;AAAA,6CAA2C;AAC3C,iCAA4C;AAC5C,kEAA+D;AAC/D,oDAAiD;AACjD,uDAAoD;AACpD,qCAAuC;AACvC,0DAA6B;AAE7B,iCAAe,CAAC,KAAK,CAAC,kBAAG,CAAC,CAAC;AAE3B,qBAAS,CAAC,KAAK,CAAC,GAAG,EAAE;IACnB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAS,IAAA,cAAQ,EAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/E,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,mBAAmB,GAAG,GAAG,EAAE;YAC/B,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAE7D,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAClE,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI,GAAG,CAAC,IAAc,CAAC,CAAC,QAAQ;QAC1C,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACpB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE;YACvB,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,mCAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE;IAC9C,MAAM,gBAAgB,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC;IAEvD,IAAI,CAAC,gBAAgB,EAAE;QACrB,EAAE,EAAE,cAAc,EAAE,CAAC;KACtB;IAED,OAAO,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"setup-fixture.js","sourceRoot":"","sources":["../src/setup-fixture.ts"],"names":[],"mappings":";;;;AAAA,6CAA2C;AAC3C,iCAA4C;AAC5C,kEAA+D;AAC/D,oEAAiE;AACjE,oDAAiD;AACjD,uDAAoD;AACpD,uCAAoC;AACpC,qCAAuC;AACvC,0DAA6B;AAE7B,iCAAe,CAAC,KAAK,CAAC,kBAAG,CAAC,CAAC;AAE3B,qBAAS,CAAC,KAAK,CAAC,GAAG,EAAE;IACnB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAS,IAAA,cAAQ,EAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/E,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,mBAAmB,GAAG,GAAG,EAAE;YAC/B,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAE7D,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAClE,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI,GAAG,CAAC,IAAc,CAAC,CAAC,QAAQ;QAC1C,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACpB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE;YACvB,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,mCAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE;IAC9C,MAAM,gBAAgB,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC;IAEvD,IAAI,CAAC,gBAAgB,EAAE;QACrB,EAAE,EAAE,cAAc,EAAE,CAAC;KACtB;IAED,OAAO,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC,CAAC;AAEH,qCAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE,WAAI;IACZ,IAAI,IAAI;QACN,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClC,CAAC;IACD,IAAI,MAAM;QACR,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;IACpC,CAAC;CACF,CAAC,CAAC,CAAC"}
@@ -1,6 +1,5 @@
1
- import { fetchRetailJSON } from './doRequest.js';
2
- export const sendCode = (body) => fetchRetailJSON('/sms/sendCode', 'POST', body).then((res) => !isErrorResult(res, body.phoneNumber));
3
- const isErrorResult = (res, phoneNumber) => Boolean(res) &&
4
- typeof res !== 'string' &&
5
- Boolean(res?.errorMessage?.startsWith(`Too many request for phoneNumber [${phoneNumber}]`));
1
+ import { doRequest } from './doRequest.js';
2
+ export const sendCode = (body) => doRequest('/sms/sendCode', 'POST', body)
3
+ .then((res) => res.text())
4
+ .then((text) => text === 'OK');
6
5
  //# sourceMappingURL=sendCode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sendCode.js","sourceRoot":"","sources":["../../../src/api/RetailAPI/sendCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAY9C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAkB,EAAE,EAAE,CAC7C,eAAe,CAAmC,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CACnF,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAC/C,CAAC;AAEJ,MAAM,aAAa,GAAG,CACpB,GAA4C,EAC5C,WAAmB,EACS,EAAE,CAC9B,OAAO,CAAC,GAAG,CAAC;IACZ,OAAO,GAAG,KAAK,QAAQ;IACvB,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,CAAC,qCAAqC,WAAW,GAAG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"sendCode.js","sourceRoot":"","sources":["../../../src/api/RetailAPI/sendCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AASxC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAkB,EAAE,EAAE,CAC7C,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC;KACrC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;KACzB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function useAsyncEffect<Deps extends any[], R>(effect: () => Promise<R | (() => void)>, deps: Deps): void;
@@ -0,0 +1,12 @@
1
+ import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
2
+ export function useAsyncEffect(effect, deps) {
3
+ useEffect(() => {
4
+ const free = effect();
5
+ return () => {
6
+ free.then((_) => {
7
+ _ instanceof Function && _();
8
+ });
9
+ };
10
+ }, deps);
11
+ }
12
+ //# sourceMappingURL=useAsyncEffect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAsyncEffect.js","sourceRoot":"","sources":["../../src/hooks/useAsyncEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,MAAM,UAAU,cAAc,CAC5B,MAAuC,EACvC,IAAU;IAEV,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QAEtB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACd,CAAC,YAAY,QAAQ,IAAI,CAAC,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const mockLocalStorage: () => Promise<void>;
@@ -0,0 +1,32 @@
1
+ import { checkCode } from '../../api/RetailAPI/checkCode.js';
2
+ import { createDraftTask } from '../../api/RetailAPI/createDraftTask.js';
3
+ import { createUserProfile } from '../../api/RetailAPI/createUserProfile.js';
4
+ import { sendCode } from '../../api/RetailAPI/sendCode.js';
5
+ const PHONE = '+11111111111';
6
+ const PROGRAM_ID = '13';
7
+ export const mockLocalStorage = async () => {
8
+ const programId = globalThis.localStorage.getItem('programId') ?? PROGRAM_ID;
9
+ const profileId = globalThis.localStorage.getItem('profileId') ??
10
+ (await createUserProfile({ profile: { phone: PHONE } }));
11
+ await sendCode({
12
+ phoneNumber: PHONE,
13
+ smsCodesSetName: { key: 'AUTHENTICATION' },
14
+ });
15
+ await checkCode({
16
+ smsCodesSetName: { key: 'AUTHENTICATION' },
17
+ smsText: '1234',
18
+ });
19
+ const task = {
20
+ taskId: globalThis.localStorage.getItem('taskId'),
21
+ participantId: globalThis.localStorage.getItem('participantId'),
22
+ };
23
+ if (!task.taskId || !task.participantId) {
24
+ const draft = await createDraftTask({ profileId: Number(profileId), programId });
25
+ Object.assign(task, draft);
26
+ }
27
+ globalThis.localStorage.setItem('programId', programId);
28
+ globalThis.localStorage.setItem('profileId', String(profileId));
29
+ globalThis.localStorage.setItem('taskId', String(task.taskId));
30
+ globalThis.localStorage.setItem('participantId', String(task.participantId));
31
+ };
32
+ //# sourceMappingURL=mockLocalStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockLocalStorage.js","sourceRoot":"","sources":["../../../src/services/retail/mockLocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,MAAM,KAAK,GAAG,cAAc,CAAC;AAC7B,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC;IAE7E,MAAM,SAAS,GACb,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;QAC5C,CAAC,MAAM,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAE3D,MAAM,QAAQ,CAAC;QACb,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE;KAC3C,CAAC,CAAC;IAEH,MAAM,SAAS,CAAC;QACd,eAAe,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE;QAC1C,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC;QACjD,aAAa,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC;KAChE,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;QACvC,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACjF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KAC5B;IAED,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACxD,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC/E,CAAC,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import '@redneckz/uni-jsx/lib/setup.react';
2
2
  import { useEffect, useState } from 'react';
3
3
  import { handlerDecorator } from './external/handlerDecorator.js';
4
+ import { locationNavigator } from './external/locationNavigator.js';
4
5
  import { useRouter } from './external/useRouter.js';
5
6
  import { projectSettings } from './ProjectSettings.js';
7
+ import { noop } from './utils/noop.js';
6
8
  import { joinPath } from './utils/url.js';
7
9
  import wlc from './wlc.json.js';
8
10
  projectSettings.setup(wlc);
@@ -40,4 +42,13 @@ handlerDecorator.setup((handler) => (ev) => {
40
42
  }
41
43
  handler(ev);
42
44
  });
45
+ locationNavigator.setup(() => ({
46
+ assign: noop,
47
+ get href() {
48
+ return globalThis.location.href;
49
+ },
50
+ get origin() {
51
+ return globalThis.location.origin;
52
+ },
53
+ }));
43
54
  //# sourceMappingURL=setup-fixture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-fixture.js","sourceRoot":"","sources":["../src/setup-fixture.ts"],"names":[],"mappings":"AAAA,OAAO,mCAAmC,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE3B,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;IACnB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/E,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,mBAAmB,GAAG,GAAG,EAAE;YAC/B,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAE7D,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAClE,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI,GAAG,CAAC,IAAc,CAAC,CAAC,QAAQ;QAC1C,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACpB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE;YACvB,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE;IAC9C,MAAM,gBAAgB,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC;IAEvD,IAAI,CAAC,gBAAgB,EAAE;QACrB,EAAE,EAAE,cAAc,EAAE,CAAC;KACtB;IAED,OAAO,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"setup-fixture.js","sourceRoot":"","sources":["../src/setup-fixture.ts"],"names":[],"mappings":"AAAA,OAAO,mCAAmC,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE3B,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;IACnB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/E,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,mBAAmB,GAAG,GAAG,EAAE;YAC/B,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAE7D,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAClE,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI,GAAG,CAAC,IAAc,CAAC,CAAC,QAAQ;QAC1C,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACpB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE;YACvB,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE;IAC9C,MAAM,gBAAgB,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC;IAEvD,IAAI,CAAC,gBAAgB,EAAE;QACrB,EAAE,EAAE,cAAc,EAAE,CAAC;KACtB;IAED,OAAO,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC,CAAC;AAEH,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE,IAAI;IACZ,IAAI,IAAI;QACN,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClC,CAAC;IACD,IAAI,MAAM;QACR,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;IACpC,CAAC;CACF,CAAC,CAAC,CAAC"}
@@ -1,5 +1,4 @@
1
- import { fetchRetailJSON } from './doRequest';
2
- import { type StatusType } from './StatusType';
1
+ import { doRequest } from './doRequest';
3
2
 
4
3
  export type SendCodeBody = {
5
4
  phoneNumber: string;
@@ -8,17 +7,7 @@ export type SendCodeBody = {
8
7
  };
9
8
  };
10
9
 
11
- type SendCodeErrorResult = { errorMessage: string };
12
-
13
10
  export const sendCode = (body: SendCodeBody) =>
14
- fetchRetailJSON<StatusType | SendCodeErrorResult>('/sms/sendCode', 'POST', body).then(
15
- (res) => !isErrorResult(res, body.phoneNumber),
16
- );
17
-
18
- const isErrorResult = (
19
- res: StatusType | SendCodeErrorResult | null,
20
- phoneNumber: string,
21
- ): res is SendCodeErrorResult =>
22
- Boolean(res) &&
23
- typeof res !== 'string' &&
24
- Boolean(res?.errorMessage?.startsWith(`Too many request for phoneNumber [${phoneNumber}]`));
11
+ doRequest('/sms/sendCode', 'POST', body)
12
+ .then((res) => res.text())
13
+ .then((text) => text === 'OK');
@@ -0,0 +1,16 @@
1
+ import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
2
+
3
+ export function useAsyncEffect<Deps extends any[], R>(
4
+ effect: () => Promise<R | (() => void)>,
5
+ deps: Deps,
6
+ ): void {
7
+ useEffect(() => {
8
+ const free = effect();
9
+
10
+ return () => {
11
+ free.then((_) => {
12
+ _ instanceof Function && _();
13
+ });
14
+ };
15
+ }, deps);
16
+ }
@@ -0,0 +1,40 @@
1
+ import { checkCode } from '../../api/RetailAPI/checkCode';
2
+ import { createDraftTask } from '../../api/RetailAPI/createDraftTask';
3
+ import { createUserProfile } from '../../api/RetailAPI/createUserProfile';
4
+ import { sendCode } from '../../api/RetailAPI/sendCode';
5
+
6
+ const PHONE = '+11111111111';
7
+ const PROGRAM_ID = '13';
8
+
9
+ export const mockLocalStorage = async () => {
10
+ const programId = globalThis.localStorage.getItem('programId') ?? PROGRAM_ID;
11
+
12
+ const profileId =
13
+ globalThis.localStorage.getItem('profileId') ??
14
+ (await createUserProfile({ profile: { phone: PHONE } }));
15
+
16
+ await sendCode({
17
+ phoneNumber: PHONE,
18
+ smsCodesSetName: { key: 'AUTHENTICATION' },
19
+ });
20
+
21
+ await checkCode({
22
+ smsCodesSetName: { key: 'AUTHENTICATION' },
23
+ smsText: '1234',
24
+ });
25
+
26
+ const task = {
27
+ taskId: globalThis.localStorage.getItem('taskId'),
28
+ participantId: globalThis.localStorage.getItem('participantId'),
29
+ };
30
+
31
+ if (!task.taskId || !task.participantId) {
32
+ const draft = await createDraftTask({ profileId: Number(profileId), programId });
33
+ Object.assign(task, draft);
34
+ }
35
+
36
+ globalThis.localStorage.setItem('programId', programId);
37
+ globalThis.localStorage.setItem('profileId', String(profileId));
38
+ globalThis.localStorage.setItem('taskId', String(task.taskId));
39
+ globalThis.localStorage.setItem('participantId', String(task.participantId));
40
+ };
@@ -1,8 +1,10 @@
1
1
  import '@redneckz/uni-jsx/lib/setup.react';
2
2
  import { useEffect, useState } from 'react';
3
3
  import { handlerDecorator } from './external/handlerDecorator';
4
+ import { locationNavigator } from './external/locationNavigator';
4
5
  import { useRouter } from './external/useRouter';
5
6
  import { projectSettings } from './ProjectSettings';
7
+ import { noop } from './utils/noop';
6
8
  import { joinPath } from './utils/url';
7
9
  import wlc from './wlc.json';
8
10
 
@@ -49,3 +51,13 @@ handlerDecorator.setup((handler): any => (ev) => {
49
51
 
50
52
  handler(ev);
51
53
  });
54
+
55
+ locationNavigator.setup(() => ({
56
+ assign: noop,
57
+ get href() {
58
+ return globalThis.location.href;
59
+ },
60
+ get origin() {
61
+ return globalThis.location.origin;
62
+ },
63
+ }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.14.713",
3
+ "version": "0.14.714",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -1,5 +1,4 @@
1
- import { fetchRetailJSON } from './doRequest';
2
- import { type StatusType } from './StatusType';
1
+ import { doRequest } from './doRequest';
3
2
 
4
3
  export type SendCodeBody = {
5
4
  phoneNumber: string;
@@ -8,17 +7,7 @@ export type SendCodeBody = {
8
7
  };
9
8
  };
10
9
 
11
- type SendCodeErrorResult = { errorMessage: string };
12
-
13
10
  export const sendCode = (body: SendCodeBody) =>
14
- fetchRetailJSON<StatusType | SendCodeErrorResult>('/sms/sendCode', 'POST', body).then(
15
- (res) => !isErrorResult(res, body.phoneNumber),
16
- );
17
-
18
- const isErrorResult = (
19
- res: StatusType | SendCodeErrorResult | null,
20
- phoneNumber: string,
21
- ): res is SendCodeErrorResult =>
22
- Boolean(res) &&
23
- typeof res !== 'string' &&
24
- Boolean(res?.errorMessage?.startsWith(`Too many request for phoneNumber [${phoneNumber}]`));
11
+ doRequest('/sms/sendCode', 'POST', body)
12
+ .then((res) => res.text())
13
+ .then((text) => text === 'OK');
@@ -1,25 +1,21 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { useAsyncEffect } from '../../hooks/useAsyncEffect';
3
+ import { mockLocalStorage } from '../../services/retail/mockLocalStorage';
1
4
  import '../../setup-fixture';
2
5
  import { DialogManager } from '../../ui-kit/DialogManager/DialogManager';
3
6
  import { PopupManager } from '../../ui-kit/PopupManager/PopupManager';
4
7
  import { CreditCardForm } from './CreditCardForm';
5
8
 
6
- const MOCK_TOKEN = 'mock-key';
7
- const MOCK_TASK_ID = '111111';
8
-
9
- const refreshToken = globalThis.sessionStorage?.getItem('refreshToken');
10
- const accessToken = globalThis.sessionStorage?.getItem('accessToken');
11
- const taskId = globalThis.localStorage.getItem('taskId');
12
-
13
- !refreshToken && globalThis.sessionStorage?.setItem('refreshToken', MOCK_TOKEN);
14
- !accessToken && globalThis.sessionStorage?.setItem('accessToken', MOCK_TOKEN);
15
- !taskId && globalThis.localStorage.setItem('taskId', MOCK_TASK_ID);
16
-
17
9
  export default {
18
- default: (
19
- <div>
20
- <CreditCardForm className="col-span-12" />
21
- <PopupManager />
22
- <DialogManager />
23
- </div>
24
- ),
10
+ default: JSX(() => {
11
+ useAsyncEffect(async () => await mockLocalStorage(), []);
12
+
13
+ return (
14
+ <div>
15
+ <CreditCardForm className="col-span-12" />
16
+ <PopupManager />
17
+ <DialogManager />
18
+ </div>
19
+ );
20
+ }),
25
21
  };
@@ -1,25 +1,21 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { useAsyncEffect } from '../../hooks/useAsyncEffect';
3
+ import { mockLocalStorage } from '../../services/retail/mockLocalStorage';
1
4
  import '../../setup-fixture';
2
5
  import { DialogManager } from '../../ui-kit/DialogManager/DialogManager';
3
6
  import { PopupManager } from '../../ui-kit/PopupManager/PopupManager';
4
7
  import { CreditCardForm } from './CreditCardForm';
5
8
 
6
- const MOCK_TOKEN = 'mock-key';
7
- const MOCK_TASK_ID = '111111';
8
-
9
- const refreshToken = globalThis.sessionStorage?.getItem('refreshToken');
10
- const accessToken = globalThis.sessionStorage?.getItem('accessToken');
11
- const taskId = globalThis.localStorage.getItem('taskId');
12
-
13
- !refreshToken && globalThis.sessionStorage?.setItem('refreshToken', MOCK_TOKEN);
14
- !accessToken && globalThis.sessionStorage?.setItem('accessToken', MOCK_TOKEN);
15
- !taskId && globalThis.localStorage.setItem('taskId', MOCK_TASK_ID);
16
-
17
9
  export default {
18
- default: (
19
- <div>
20
- <CreditCardForm className="col-span-12" />
21
- <PopupManager />
22
- <DialogManager />
23
- </div>
24
- ),
10
+ default: JSX(() => {
11
+ useAsyncEffect(async () => await mockLocalStorage(), []);
12
+
13
+ return (
14
+ <div>
15
+ <CreditCardForm className="col-span-12" />
16
+ <PopupManager />
17
+ <DialogManager />
18
+ </div>
19
+ );
20
+ }),
25
21
  };
@@ -1,30 +1,26 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { useAsyncEffect } from '../../hooks/useAsyncEffect';
3
+ import { mockLocalStorage } from '../../services/retail/mockLocalStorage';
1
4
  import '../../setup-fixture';
2
5
  import { DialogManager } from '../../ui-kit/DialogManager/DialogManager';
3
6
  import { PopupManager } from '../../ui-kit/PopupManager/PopupManager';
4
7
  import { CreditForm } from './CreditForm';
5
8
 
6
- const MOCK_TOKEN = 'mock-key';
7
- const MOCK_TASK_ID = '111111';
8
-
9
- const refreshToken = globalThis.sessionStorage?.getItem('refreshToken');
10
- const accessToken = globalThis.sessionStorage?.getItem('accessToken');
11
- const taskId = globalThis.localStorage.getItem('taskId');
12
-
13
- !refreshToken && globalThis.sessionStorage?.setItem('refreshToken', MOCK_TOKEN);
14
- !accessToken && globalThis.sessionStorage?.setItem('accessToken', MOCK_TOKEN);
15
- !taskId && globalThis.localStorage.setItem('taskId', MOCK_TASK_ID);
16
-
17
9
  export default {
18
- default: (
19
- <div>
20
- <CreditForm
21
- className="col-span-12"
22
- programsSource={{
23
- $ref: '/wcms-resources/products-credit-calc-data.json',
24
- }}
25
- />
26
- <PopupManager />
27
- <DialogManager />
28
- </div>
29
- ),
10
+ default: JSX(() => {
11
+ useAsyncEffect(async () => await mockLocalStorage(), []);
12
+
13
+ return (
14
+ <div>
15
+ <CreditForm
16
+ className="col-span-12"
17
+ programsSource={{
18
+ $ref: '/wcms-resources/products-credit-calc-data.json',
19
+ }}
20
+ />
21
+ <PopupManager />
22
+ <DialogManager />
23
+ </div>
24
+ );
25
+ }),
30
26
  };
@@ -1,30 +1,26 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { useAsyncEffect } from '../../hooks/useAsyncEffect';
3
+ import { mockLocalStorage } from '../../services/retail/mockLocalStorage';
1
4
  import '../../setup-fixture';
2
5
  import { DialogManager } from '../../ui-kit/DialogManager/DialogManager';
3
6
  import { PopupManager } from '../../ui-kit/PopupManager/PopupManager';
4
7
  import { CreditForm } from './CreditForm';
5
8
 
6
- const MOCK_TOKEN = 'mock-key';
7
- const MOCK_TASK_ID = '111111';
8
-
9
- const refreshToken = globalThis.sessionStorage?.getItem('refreshToken');
10
- const accessToken = globalThis.sessionStorage?.getItem('accessToken');
11
- const taskId = globalThis.localStorage.getItem('taskId');
12
-
13
- !refreshToken && globalThis.sessionStorage?.setItem('refreshToken', MOCK_TOKEN);
14
- !accessToken && globalThis.sessionStorage?.setItem('accessToken', MOCK_TOKEN);
15
- !taskId && globalThis.localStorage.setItem('taskId', MOCK_TASK_ID);
16
-
17
9
  export default {
18
- default: (
19
- <div>
20
- <CreditForm
21
- className="col-span-12"
22
- programsSource={{
23
- $ref: '/wcms-resources/products-credit-calc-data.json',
24
- }}
25
- />
26
- <PopupManager />
27
- <DialogManager />
28
- </div>
29
- ),
10
+ default: JSX(() => {
11
+ useAsyncEffect(async () => await mockLocalStorage(), []);
12
+
13
+ return (
14
+ <div>
15
+ <CreditForm
16
+ className="col-span-12"
17
+ programsSource={{
18
+ $ref: '/wcms-resources/products-credit-calc-data.json',
19
+ }}
20
+ />
21
+ <PopupManager />
22
+ <DialogManager />
23
+ </div>
24
+ );
25
+ }),
30
26
  };
@@ -0,0 +1,16 @@
1
+ import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
2
+
3
+ export function useAsyncEffect<Deps extends any[], R>(
4
+ effect: () => Promise<R | (() => void)>,
5
+ deps: Deps,
6
+ ): void {
7
+ useEffect(() => {
8
+ const free = effect();
9
+
10
+ return () => {
11
+ free.then((_) => {
12
+ _ instanceof Function && _();
13
+ });
14
+ };
15
+ }, deps);
16
+ }