@redneckz/wildless-cms-uni-blocks 0.14.863 → 0.14.864

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 (246) hide show
  1. package/bundle/bundle.umd.js +93 -25
  2. package/bundle/bundle.umd.min.js +1 -1
  3. package/bundle/components/ApplicationLeadForm/getLeadFormTaskData.d.ts +4 -2
  4. package/bundle/components/ApplicationLeadForm/useLeadFormStore.d.ts +3 -0
  5. package/bundle/components/CreditCardForm/getCreditCardFormTaskData.d.ts +3 -1
  6. package/bundle/components/DebitForm/getDebitCardFormTaskData.d.ts +3 -1
  7. package/bundle/retail/adaptors/getCreditFormTaskData.d.ts +3 -1
  8. package/bundle/retail/api/draftTasksKZO.d.ts +1 -0
  9. package/bundle/retail/api/saveReferalInfo.d.ts +5 -0
  10. package/bundle/retail/components/DraftDialog/DraftDialog.d.ts +1 -0
  11. package/bundle/retail/components/DraftDialog/parseDraftTask.d.ts +1 -1
  12. package/bundle/retail/components/DraftDialog/useDraftDialog.d.ts +2 -9
  13. package/bundle/retail/hooks/useRetailFormStore.d.ts +1 -0
  14. package/bundle/retail/model/ReferalData.d.ts +7 -0
  15. package/bundle/utils/getSessionQuery.d.ts +1 -0
  16. package/dist/components/ApplicationLeadForm/getLeadFormTaskData.d.ts +4 -2
  17. package/dist/components/ApplicationLeadForm/getLeadFormTaskData.js +6 -4
  18. package/dist/components/ApplicationLeadForm/getLeadFormTaskData.js.map +1 -1
  19. package/dist/components/ApplicationLeadForm/useApplicationLeadApi.js +16 -2
  20. package/dist/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  21. package/dist/components/ApplicationLeadForm/useInitApplicationLead.js +36 -4
  22. package/dist/components/ApplicationLeadForm/useInitApplicationLead.js.map +1 -1
  23. package/dist/components/ApplicationLeadForm/useLeadFormStore.d.ts +3 -0
  24. package/dist/components/ApplicationLeadForm/useLeadFormStore.js.map +1 -1
  25. package/dist/components/CreditCardForm/getCreditCardFormTaskData.d.ts +3 -1
  26. package/dist/components/CreditCardForm/getCreditCardFormTaskData.js +3 -2
  27. package/dist/components/CreditCardForm/getCreditCardFormTaskData.js.map +1 -1
  28. package/dist/components/CreditCardForm/useCreditCardFormAPI.js +2 -0
  29. package/dist/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
  30. package/dist/components/CreditForm/useCreditFormAPI.js +2 -0
  31. package/dist/components/CreditForm/useCreditFormAPI.js.map +1 -1
  32. package/dist/components/DebitForm/getDebitCardFormTaskData.d.ts +3 -1
  33. package/dist/components/DebitForm/getDebitCardFormTaskData.js +3 -2
  34. package/dist/components/DebitForm/getDebitCardFormTaskData.js.map +1 -1
  35. package/dist/components/DebitForm/useDebitFormAPI.js +2 -0
  36. package/dist/components/DebitForm/useDebitFormAPI.js.map +1 -1
  37. package/dist/retail/adaptors/getCreditFormTaskData.d.ts +3 -1
  38. package/dist/retail/adaptors/getCreditFormTaskData.js +3 -2
  39. package/dist/retail/adaptors/getCreditFormTaskData.js.map +1 -1
  40. package/dist/retail/api/draftTasksKZO.d.ts +1 -0
  41. package/dist/retail/api/draftTasksKZO.js.map +1 -1
  42. package/dist/retail/api/saveReferalInfo.d.ts +5 -0
  43. package/dist/retail/api/saveReferalInfo.js +6 -0
  44. package/dist/retail/api/saveReferalInfo.js.map +1 -0
  45. package/dist/retail/components/DraftDialog/DraftDialog.d.ts +1 -0
  46. package/dist/retail/components/DraftDialog/DraftDialog.js +13 -4
  47. package/dist/retail/components/DraftDialog/DraftDialog.js.map +1 -1
  48. package/dist/retail/components/DraftDialog/parseDraftTask.d.ts +1 -1
  49. package/dist/retail/components/DraftDialog/parseDraftTask.js +3 -2
  50. package/dist/retail/components/DraftDialog/parseDraftTask.js.map +1 -1
  51. package/dist/retail/components/DraftDialog/useDraftDialog.d.ts +2 -9
  52. package/dist/retail/components/DraftDialog/useDraftDialog.js +4 -2
  53. package/dist/retail/components/DraftDialog/useDraftDialog.js.map +1 -1
  54. package/dist/retail/hooks/useRetailFormStore.d.ts +1 -0
  55. package/dist/retail/model/ReferalData.d.ts +7 -0
  56. package/dist/retail/model/ReferalData.js +2 -0
  57. package/dist/retail/model/ReferalData.js.map +1 -0
  58. package/dist/utils/getSessionQuery.d.ts +1 -0
  59. package/dist/utils/getSessionQuery.js +4 -4
  60. package/dist/utils/getSessionQuery.js.map +1 -1
  61. package/lib/components/ApplicationLeadForm/getLeadFormTaskData.d.ts +4 -2
  62. package/lib/components/ApplicationLeadForm/getLeadFormTaskData.js +6 -4
  63. package/lib/components/ApplicationLeadForm/getLeadFormTaskData.js.map +1 -1
  64. package/lib/components/ApplicationLeadForm/useApplicationLeadApi.js +16 -2
  65. package/lib/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  66. package/lib/components/ApplicationLeadForm/useInitApplicationLead.js +36 -4
  67. package/lib/components/ApplicationLeadForm/useInitApplicationLead.js.map +1 -1
  68. package/lib/components/ApplicationLeadForm/useLeadFormStore.d.ts +3 -0
  69. package/lib/components/ApplicationLeadForm/useLeadFormStore.js.map +1 -1
  70. package/lib/components/CreditCardForm/getCreditCardFormTaskData.d.ts +3 -1
  71. package/lib/components/CreditCardForm/getCreditCardFormTaskData.js +3 -2
  72. package/lib/components/CreditCardForm/getCreditCardFormTaskData.js.map +1 -1
  73. package/lib/components/CreditCardForm/useCreditCardFormAPI.js +2 -0
  74. package/lib/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
  75. package/lib/components/CreditForm/useCreditFormAPI.js +2 -0
  76. package/lib/components/CreditForm/useCreditFormAPI.js.map +1 -1
  77. package/lib/components/DebitForm/getDebitCardFormTaskData.d.ts +3 -1
  78. package/lib/components/DebitForm/getDebitCardFormTaskData.js +3 -2
  79. package/lib/components/DebitForm/getDebitCardFormTaskData.js.map +1 -1
  80. package/lib/components/DebitForm/useDebitFormAPI.js +2 -0
  81. package/lib/components/DebitForm/useDebitFormAPI.js.map +1 -1
  82. package/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +1 -1
  83. package/lib/retail/adaptors/getCreditFormTaskData.d.ts +3 -1
  84. package/lib/retail/adaptors/getCreditFormTaskData.js +3 -2
  85. package/lib/retail/adaptors/getCreditFormTaskData.js.map +1 -1
  86. package/lib/retail/api/draftTasksKZO.d.ts +1 -0
  87. package/lib/retail/api/draftTasksKZO.js.map +1 -1
  88. package/lib/retail/api/saveReferalInfo.d.ts +5 -0
  89. package/lib/retail/api/saveReferalInfo.js +3 -0
  90. package/lib/retail/api/saveReferalInfo.js.map +1 -0
  91. package/lib/retail/components/DraftDialog/DraftDialog.d.ts +1 -0
  92. package/lib/retail/components/DraftDialog/DraftDialog.js +13 -4
  93. package/lib/retail/components/DraftDialog/DraftDialog.js.map +1 -1
  94. package/lib/retail/components/DraftDialog/parseDraftTask.d.ts +1 -1
  95. package/lib/retail/components/DraftDialog/parseDraftTask.js +3 -2
  96. package/lib/retail/components/DraftDialog/parseDraftTask.js.map +1 -1
  97. package/lib/retail/components/DraftDialog/useDraftDialog.d.ts +2 -9
  98. package/lib/retail/components/DraftDialog/useDraftDialog.js +4 -2
  99. package/lib/retail/components/DraftDialog/useDraftDialog.js.map +1 -1
  100. package/lib/retail/hooks/useRetailFormStore.d.ts +1 -0
  101. package/lib/retail/model/ReferalData.d.ts +7 -0
  102. package/lib/retail/model/ReferalData.js +2 -0
  103. package/lib/retail/model/ReferalData.js.map +1 -0
  104. package/lib/utils/getSessionQuery.d.ts +1 -0
  105. package/lib/utils/getSessionQuery.js +1 -1
  106. package/lib/utils/getSessionQuery.js.map +1 -1
  107. package/mobile/bundle/bundle.umd.js +88 -23
  108. package/mobile/bundle/bundle.umd.min.js +1 -1
  109. package/mobile/bundle/components/ApplicationLeadForm/getLeadFormTaskData.d.ts +4 -2
  110. package/mobile/bundle/components/ApplicationLeadForm/useLeadFormStore.d.ts +3 -0
  111. package/mobile/bundle/components/CreditCardForm/getCreditCardFormTaskData.d.ts +3 -1
  112. package/mobile/bundle/components/DebitForm/getDebitCardFormTaskData.d.ts +3 -1
  113. package/mobile/bundle/retail/adaptors/getCreditFormTaskData.d.ts +3 -1
  114. package/mobile/bundle/retail/api/draftTasksKZO.d.ts +1 -0
  115. package/mobile/bundle/retail/api/saveReferalInfo.d.ts +5 -0
  116. package/mobile/bundle/retail/components/DraftDialog/DraftDialog.d.ts +1 -0
  117. package/mobile/bundle/retail/components/DraftDialog/parseDraftTask.d.ts +1 -1
  118. package/mobile/bundle/retail/components/DraftDialog/useDraftDialog.d.ts +2 -9
  119. package/mobile/bundle/retail/hooks/useRetailFormStore.d.ts +1 -0
  120. package/mobile/bundle/retail/model/ReferalData.d.ts +7 -0
  121. package/mobile/bundle/utils/getSessionQuery.d.ts +1 -0
  122. package/mobile/dist/components/ApplicationLeadForm/getLeadFormTaskData.d.ts +4 -2
  123. package/mobile/dist/components/ApplicationLeadForm/getLeadFormTaskData.js +6 -4
  124. package/mobile/dist/components/ApplicationLeadForm/getLeadFormTaskData.js.map +1 -1
  125. package/mobile/dist/components/ApplicationLeadForm/useApplicationLeadApi.js +16 -2
  126. package/mobile/dist/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  127. package/mobile/dist/components/ApplicationLeadForm/useInitApplicationLead.js +36 -4
  128. package/mobile/dist/components/ApplicationLeadForm/useInitApplicationLead.js.map +1 -1
  129. package/mobile/dist/components/ApplicationLeadForm/useLeadFormStore.d.ts +3 -0
  130. package/mobile/dist/components/ApplicationLeadForm/useLeadFormStore.js.map +1 -1
  131. package/mobile/dist/components/CreditCardForm/getCreditCardFormTaskData.d.ts +3 -1
  132. package/mobile/dist/components/CreditCardForm/getCreditCardFormTaskData.js +3 -2
  133. package/mobile/dist/components/CreditCardForm/getCreditCardFormTaskData.js.map +1 -1
  134. package/mobile/dist/components/CreditCardForm/useCreditCardFormAPI.js +2 -0
  135. package/mobile/dist/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
  136. package/mobile/dist/components/CreditForm/useCreditFormAPI.js +2 -0
  137. package/mobile/dist/components/CreditForm/useCreditFormAPI.js.map +1 -1
  138. package/mobile/dist/components/DebitForm/getDebitCardFormTaskData.d.ts +3 -1
  139. package/mobile/dist/components/DebitForm/getDebitCardFormTaskData.js +3 -2
  140. package/mobile/dist/components/DebitForm/getDebitCardFormTaskData.js.map +1 -1
  141. package/mobile/dist/components/DebitForm/useDebitFormAPI.js +2 -0
  142. package/mobile/dist/components/DebitForm/useDebitFormAPI.js.map +1 -1
  143. package/mobile/dist/retail/adaptors/getCreditFormTaskData.d.ts +3 -1
  144. package/mobile/dist/retail/adaptors/getCreditFormTaskData.js +3 -2
  145. package/mobile/dist/retail/adaptors/getCreditFormTaskData.js.map +1 -1
  146. package/mobile/dist/retail/api/draftTasksKZO.d.ts +1 -0
  147. package/mobile/dist/retail/api/draftTasksKZO.js.map +1 -1
  148. package/mobile/dist/retail/api/saveReferalInfo.d.ts +5 -0
  149. package/mobile/dist/retail/api/saveReferalInfo.js +6 -0
  150. package/mobile/dist/retail/api/saveReferalInfo.js.map +1 -0
  151. package/mobile/dist/retail/components/DraftDialog/DraftDialog.d.ts +1 -0
  152. package/mobile/dist/retail/components/DraftDialog/DraftDialog.js +13 -4
  153. package/mobile/dist/retail/components/DraftDialog/DraftDialog.js.map +1 -1
  154. package/mobile/dist/retail/components/DraftDialog/parseDraftTask.d.ts +1 -1
  155. package/mobile/dist/retail/components/DraftDialog/parseDraftTask.js +3 -2
  156. package/mobile/dist/retail/components/DraftDialog/parseDraftTask.js.map +1 -1
  157. package/mobile/dist/retail/components/DraftDialog/useDraftDialog.d.ts +2 -9
  158. package/mobile/dist/retail/components/DraftDialog/useDraftDialog.js +4 -2
  159. package/mobile/dist/retail/components/DraftDialog/useDraftDialog.js.map +1 -1
  160. package/mobile/dist/retail/hooks/useRetailFormStore.d.ts +1 -0
  161. package/mobile/dist/retail/model/ReferalData.d.ts +7 -0
  162. package/mobile/dist/retail/model/ReferalData.js +2 -0
  163. package/mobile/dist/retail/model/ReferalData.js.map +1 -0
  164. package/mobile/dist/utils/getSessionQuery.d.ts +1 -0
  165. package/mobile/dist/utils/getSessionQuery.js +4 -4
  166. package/mobile/dist/utils/getSessionQuery.js.map +1 -1
  167. package/mobile/lib/components/ApplicationLeadForm/getLeadFormTaskData.d.ts +4 -2
  168. package/mobile/lib/components/ApplicationLeadForm/getLeadFormTaskData.js +6 -4
  169. package/mobile/lib/components/ApplicationLeadForm/getLeadFormTaskData.js.map +1 -1
  170. package/mobile/lib/components/ApplicationLeadForm/useApplicationLeadApi.js +16 -2
  171. package/mobile/lib/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  172. package/mobile/lib/components/ApplicationLeadForm/useInitApplicationLead.js +36 -4
  173. package/mobile/lib/components/ApplicationLeadForm/useInitApplicationLead.js.map +1 -1
  174. package/mobile/lib/components/ApplicationLeadForm/useLeadFormStore.d.ts +3 -0
  175. package/mobile/lib/components/ApplicationLeadForm/useLeadFormStore.js.map +1 -1
  176. package/mobile/lib/components/CreditCardForm/getCreditCardFormTaskData.d.ts +3 -1
  177. package/mobile/lib/components/CreditCardForm/getCreditCardFormTaskData.js +3 -2
  178. package/mobile/lib/components/CreditCardForm/getCreditCardFormTaskData.js.map +1 -1
  179. package/mobile/lib/components/CreditCardForm/useCreditCardFormAPI.js +2 -0
  180. package/mobile/lib/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
  181. package/mobile/lib/components/CreditForm/useCreditFormAPI.js +2 -0
  182. package/mobile/lib/components/CreditForm/useCreditFormAPI.js.map +1 -1
  183. package/mobile/lib/components/DebitForm/getDebitCardFormTaskData.d.ts +3 -1
  184. package/mobile/lib/components/DebitForm/getDebitCardFormTaskData.js +3 -2
  185. package/mobile/lib/components/DebitForm/getDebitCardFormTaskData.js.map +1 -1
  186. package/mobile/lib/components/DebitForm/useDebitFormAPI.js +2 -0
  187. package/mobile/lib/components/DebitForm/useDebitFormAPI.js.map +1 -1
  188. package/mobile/lib/retail/adaptors/getCreditFormTaskData.d.ts +3 -1
  189. package/mobile/lib/retail/adaptors/getCreditFormTaskData.js +3 -2
  190. package/mobile/lib/retail/adaptors/getCreditFormTaskData.js.map +1 -1
  191. package/mobile/lib/retail/api/draftTasksKZO.d.ts +1 -0
  192. package/mobile/lib/retail/api/draftTasksKZO.js.map +1 -1
  193. package/mobile/lib/retail/api/saveReferalInfo.d.ts +5 -0
  194. package/mobile/lib/retail/api/saveReferalInfo.js +3 -0
  195. package/mobile/lib/retail/api/saveReferalInfo.js.map +1 -0
  196. package/mobile/lib/retail/components/DraftDialog/DraftDialog.d.ts +1 -0
  197. package/mobile/lib/retail/components/DraftDialog/DraftDialog.js +13 -4
  198. package/mobile/lib/retail/components/DraftDialog/DraftDialog.js.map +1 -1
  199. package/mobile/lib/retail/components/DraftDialog/parseDraftTask.d.ts +1 -1
  200. package/mobile/lib/retail/components/DraftDialog/parseDraftTask.js +3 -2
  201. package/mobile/lib/retail/components/DraftDialog/parseDraftTask.js.map +1 -1
  202. package/mobile/lib/retail/components/DraftDialog/useDraftDialog.d.ts +2 -9
  203. package/mobile/lib/retail/components/DraftDialog/useDraftDialog.js +4 -2
  204. package/mobile/lib/retail/components/DraftDialog/useDraftDialog.js.map +1 -1
  205. package/mobile/lib/retail/hooks/useRetailFormStore.d.ts +1 -0
  206. package/mobile/lib/retail/model/ReferalData.d.ts +7 -0
  207. package/mobile/lib/retail/model/ReferalData.js +2 -0
  208. package/mobile/lib/retail/model/ReferalData.js.map +1 -0
  209. package/mobile/lib/utils/getSessionQuery.d.ts +1 -0
  210. package/mobile/lib/utils/getSessionQuery.js +1 -1
  211. package/mobile/lib/utils/getSessionQuery.js.map +1 -1
  212. package/mobile/src/components/ApplicationLeadForm/getLeadFormTaskData.ts +8 -2
  213. package/mobile/src/components/ApplicationLeadForm/useApplicationLeadApi.tsx +21 -1
  214. package/mobile/src/components/ApplicationLeadForm/useInitApplicationLead.ts +43 -4
  215. package/mobile/src/components/ApplicationLeadForm/useLeadFormStore.ts +2 -0
  216. package/mobile/src/components/CreditCardForm/getCreditCardFormTaskData.ts +5 -1
  217. package/mobile/src/components/CreditCardForm/useCreditCardFormAPI.tsx +2 -0
  218. package/mobile/src/components/CreditForm/useCreditFormAPI.tsx +2 -0
  219. package/mobile/src/components/DebitForm/getDebitCardFormTaskData.ts +5 -1
  220. package/mobile/src/components/DebitForm/useDebitFormAPI.tsx +2 -0
  221. package/mobile/src/retail/adaptors/getCreditFormTaskData.ts +5 -1
  222. package/mobile/src/retail/api/draftTasksKZO.ts +1 -0
  223. package/mobile/src/retail/api/saveReferalInfo.ts +9 -0
  224. package/mobile/src/retail/components/DraftDialog/DraftDialog.tsx +15 -3
  225. package/mobile/src/retail/components/DraftDialog/parseDraftTask.ts +5 -2
  226. package/mobile/src/retail/components/DraftDialog/useDraftDialog.tsx +5 -11
  227. package/mobile/src/retail/model/ReferalData.ts +8 -0
  228. package/mobile/src/utils/getSessionQuery.ts +1 -1
  229. package/package.json +1 -1
  230. package/src/components/ApplicationLeadForm/getLeadFormTaskData.ts +8 -2
  231. package/src/components/ApplicationLeadForm/useApplicationLeadApi.tsx +21 -1
  232. package/src/components/ApplicationLeadForm/useInitApplicationLead.ts +43 -4
  233. package/src/components/ApplicationLeadForm/useLeadFormStore.ts +2 -0
  234. package/src/components/CreditCardForm/getCreditCardFormTaskData.ts +5 -1
  235. package/src/components/CreditCardForm/useCreditCardFormAPI.tsx +2 -0
  236. package/src/components/CreditForm/useCreditFormAPI.tsx +2 -0
  237. package/src/components/DebitForm/getDebitCardFormTaskData.ts +5 -1
  238. package/src/components/DebitForm/useDebitFormAPI.tsx +2 -0
  239. package/src/retail/adaptors/getCreditFormTaskData.ts +5 -1
  240. package/src/retail/api/draftTasksKZO.ts +1 -0
  241. package/src/retail/api/saveReferalInfo.ts +9 -0
  242. package/src/retail/components/DraftDialog/DraftDialog.tsx +15 -3
  243. package/src/retail/components/DraftDialog/parseDraftTask.ts +5 -2
  244. package/src/retail/components/DraftDialog/useDraftDialog.tsx +5 -11
  245. package/src/retail/model/ReferalData.ts +8 -0
  246. package/src/utils/getSessionQuery.ts +1 -1
@@ -1,8 +1,11 @@
1
+ /* eslint-disable max-lines-per-function */
1
2
  import { useCallback, useEffect, useMemo } from '@redneckz/uni-jsx/lib/hooks';
2
3
  import { useSetter } from '../../hooks/useSetter';
3
4
  import { esiaRequestProfile } from '../../retail/api/esiaRequestProfile';
4
5
  import { type LeadFormState } from '../../retail/model/LeadFormState';
6
+ import { type ReferalData } from '../../retail/model/ReferalData';
5
7
  import { type FieldRetailDef } from '../../retail/model/RetailFormContent';
8
+ import { QUERY_STORAGE_KEY } from '../../utils/getSessionQuery';
6
9
  import { EsiaStatuses, type ProductType } from './ApplicationLeadFormContent';
7
10
  import { getInitialFormState } from './getInitialFormState';
8
11
  import { parseEsiaProfile } from './parseEsiaProfile';
@@ -24,6 +27,7 @@ export const useInitApplicationLead = ({
24
27
  }: InitApplicationLeadProps): LeadFormState => {
25
28
  const leadFormStore = useLeadFormStore();
26
29
  const saveForm = useSetter(leadFormStore, 'leadForm');
30
+ const queryFromStorage = globalThis.sessionStorage?.getItem(QUERY_STORAGE_KEY);
27
31
 
28
32
  const initialFormState = useMemo(
29
33
  () => getInitialFormState(inputs, leadFormStore.leadForm, esiaAuthSuccess),
@@ -57,9 +61,26 @@ export const useInitApplicationLead = ({
57
61
  useEffect(() => {
58
62
  leadFormStore.productType = productType;
59
63
 
60
- const params = new URLSearchParams(decodeURIComponent(globalThis.location?.search));
61
- const code = params.get('code');
62
- const state = params.get('state');
64
+ const { code, state, referalCode, refererCode, productId } = getLeadQueryParams(
65
+ leadFormStore.referalData,
66
+ queryFromStorage,
67
+ );
68
+
69
+ if (referalCode) {
70
+ leadFormStore.referalData = {
71
+ refererCode,
72
+ referalCode,
73
+ productId,
74
+ isTaskWithReferalCode: true,
75
+ };
76
+ } else if (!code) {
77
+ leadFormStore.referalData = {
78
+ refererCode: null,
79
+ referalCode: null,
80
+ productId: null,
81
+ isTaskWithReferalCode: false,
82
+ };
83
+ }
63
84
 
64
85
  if (code && state) {
65
86
  requestEsiaProfile(code, state);
@@ -67,7 +88,25 @@ export const useInitApplicationLead = ({
67
88
  sessionStorage.removeItem('accessToken');
68
89
  sessionStorage.removeItem('refreshToken');
69
90
  }
70
- }, []);
91
+ }, [queryFromStorage]);
71
92
 
72
93
  return initialFormState;
73
94
  };
95
+
96
+ const getLeadQueryParams = (referalData: ReferalData | null, queryFromStorage: string | null) => {
97
+ const queryStorage = new URLSearchParams(decodeURIComponent(queryFromStorage || ''));
98
+
99
+ const code = queryStorage.get('code');
100
+ const state = queryStorage.get('state');
101
+ const referalCode = code ? referalData?.referalCode : queryStorage.get('referalCode');
102
+ const refererCode = code ? referalData?.refererCode : queryStorage.get('refererCode');
103
+ const productId = code ? referalData?.productId : queryStorage.get('productId');
104
+
105
+ return {
106
+ code,
107
+ state,
108
+ referalCode,
109
+ refererCode,
110
+ productId,
111
+ };
112
+ };
@@ -1,5 +1,6 @@
1
1
  import { useLocalStore } from '@redneckz/uni-jsx/lib/Store/useLocalStore';
2
2
  import { type LeadFormState } from '../../retail/model/LeadFormState';
3
+ import { type ReferalData } from '../../retail/model/ReferalData';
3
4
  import { type ProductType } from './ApplicationLeadFormContent';
4
5
 
5
6
  export interface LeadFormStoreSlice {
@@ -9,6 +10,7 @@ export interface LeadFormStoreSlice {
9
10
  participantId: number;
10
11
  programId: string;
11
12
  productType: ProductType;
13
+ referalData: ReferalData;
12
14
  }
13
15
 
14
16
  export const useLeadFormStore = () => useLocalStore<LeadFormStoreSlice>();
@@ -6,6 +6,7 @@ import { getFamilyStatusAndIncomeData } from '../../retail/adaptors/getFamilySta
6
6
  import { getPersonalInfoData } from '../../retail/adaptors/getPersonalInfoData';
7
7
  import { type Participant, type UpdateUserTaskBody } from '../../retail/api/updateUserTask';
8
8
  import { type LeadFormState } from '../../retail/model/LeadFormState';
9
+ import { type ReferalData } from '../../retail/model/ReferalData';
9
10
  import {
10
11
  getDeliveryCreditCardData,
11
12
  getDeliveryData,
@@ -18,6 +19,7 @@ type getCreditCardFormTaskDataProps = {
18
19
  profileId: number;
19
20
  formData: LeadFormState;
20
21
  step?: number;
22
+ isTaskWithReferalCode?: ReferalData['isTaskWithReferalCode'];
21
23
  };
22
24
 
23
25
  export const getCreditCardFormTaskData = ({
@@ -26,14 +28,16 @@ export const getCreditCardFormTaskData = ({
26
28
  profileId,
27
29
  formData,
28
30
  step = 0,
31
+ isTaskWithReferalCode,
29
32
  }: getCreditCardFormTaskDataProps): UpdateUserTaskBody => {
30
33
  const navigator = locationNavigator();
34
+ const taskSource = isTaskWithReferalCode ? 'ReferalSF' : navigator.origin;
31
35
 
32
36
  return {
33
37
  sendToBank: true,
34
38
  taskKind: 'UNITED',
35
39
  task: {
36
- taskSource: navigator.origin,
40
+ taskSource,
37
41
  id: taskId,
38
42
  ...getOfficeCode(formData),
39
43
  authorizedAgentId: formData?.bankEmployeeCode,
@@ -48,6 +48,7 @@ export const useCreditCardFormAPI = ({
48
48
  async (formData: LeadFormState) => {
49
49
  startSending();
50
50
  retailFormStore.leadForm = formData;
51
+ const referalData = retailFormStore.referalData;
51
52
 
52
53
  try {
53
54
  const { taskId, profileId, participantId } = retailFormStore;
@@ -59,6 +60,7 @@ export const useCreditCardFormAPI = ({
59
60
  profileId,
60
61
  step,
61
62
  formData: formData as any,
63
+ isTaskWithReferalCode: referalData?.isTaskWithReferalCode,
62
64
  }),
63
65
  );
64
66
  resetForm(response);
@@ -52,6 +52,7 @@ export const useCreditFormAPI = ({
52
52
  async (formData: LeadFormState) => {
53
53
  startSending();
54
54
  retailFormStore.leadForm = formData;
55
+ const referalData = retailFormStore.referalData;
55
56
 
56
57
  try {
57
58
  const { taskId, profileId, participantId } = retailFormStore;
@@ -63,6 +64,7 @@ export const useCreditFormAPI = ({
63
64
  profileId,
64
65
  step,
65
66
  formData: formData as any,
67
+ isTaskWithReferalCode: referalData?.isTaskWithReferalCode,
66
68
  }),
67
69
  );
68
70
  resetForm(response);
@@ -4,6 +4,7 @@ import { getPersonalInfoData } from '../../retail/adaptors/getPersonalInfoData';
4
4
  import { type Participant } from '../../retail/api/updateUserTask';
5
5
  import { type UpdateUserTaskDebitBody } from '../../retail/api/updateUserTaskDebit';
6
6
  import { type LeadFormState } from '../../retail/model/LeadFormState';
7
+ import { type ReferalData } from '../../retail/model/ReferalData';
7
8
  import {
8
9
  getDebitCardData,
9
10
  getDeliveryData,
@@ -18,6 +19,7 @@ type getDebitFormTaskDataProps = {
18
19
  formData: LeadFormState;
19
20
  programId: string;
20
21
  step?: number;
22
+ isTaskWithReferalCode?: ReferalData['isTaskWithReferalCode'];
21
23
  };
22
24
 
23
25
  export const getDebitCardFormTaskData = ({
@@ -26,12 +28,14 @@ export const getDebitCardFormTaskData = ({
26
28
  formData,
27
29
  programId,
28
30
  step = 0,
31
+ isTaskWithReferalCode,
29
32
  }: getDebitFormTaskDataProps): UpdateUserTaskDebitBody => {
30
33
  const navigator = locationNavigator();
34
+ const taskSource = isTaskWithReferalCode ? 'ReferalSF' : navigator.origin;
31
35
 
32
36
  return {
33
37
  task: {
34
- taskSource: navigator.origin,
38
+ taskSource,
35
39
  id: taskId,
36
40
  creditProgram: {
37
41
  code: debitProgrammIdToCardCodesMap[programId],
@@ -40,6 +40,7 @@ export const useDebitFormAPI = ({
40
40
  async (formData: LeadFormState) => {
41
41
  startSending();
42
42
  retailFormStore.leadForm = formData;
43
+ const referalData = retailFormStore.referalData;
43
44
 
44
45
  try {
45
46
  const { taskId, participantId, programId } = retailFormStore;
@@ -51,6 +52,7 @@ export const useDebitFormAPI = ({
51
52
  programId,
52
53
  step,
53
54
  formData: formData as any,
55
+ isTaskWithReferalCode: referalData?.isTaskWithReferalCode,
54
56
  }),
55
57
  );
56
58
  }
@@ -2,6 +2,7 @@ import { getCalcData } from '../../components/CreditForm/getCalcData';
2
2
  import { locationNavigator } from '../../external/locationNavigator';
3
3
  import { type Participant, type UpdateUserTaskBody } from '../api/updateUserTask';
4
4
  import { type LeadFormState } from '../model/LeadFormState';
5
+ import { type ReferalData } from '../model/ReferalData';
5
6
  import { getAdditionalInfoData } from './getAdditionalInfoData';
6
7
  import { getCalculatorData } from './getCalculatorData';
7
8
  import { getDeliveryCreditData } from './getDeliveryCreditData';
@@ -15,6 +16,7 @@ type getCreditFormTaskDataProps = {
15
16
  profileId: number;
16
17
  formData: LeadFormState;
17
18
  step?: number;
19
+ isTaskWithReferalCode?: ReferalData['isTaskWithReferalCode'];
18
20
  };
19
21
 
20
22
  export const getCreditFormTaskData = ({
@@ -23,14 +25,16 @@ export const getCreditFormTaskData = ({
23
25
  profileId,
24
26
  formData,
25
27
  step = 0,
28
+ isTaskWithReferalCode,
26
29
  }: getCreditFormTaskDataProps): UpdateUserTaskBody => {
27
30
  const navigator = locationNavigator();
31
+ const taskSource = isTaskWithReferalCode ? 'ReferalSF' : navigator.origin;
28
32
 
29
33
  return {
30
34
  sendToBank: true,
31
35
  taskKind: 'UNITED',
32
36
  task: {
33
- taskSource: navigator.origin,
37
+ taskSource,
34
38
  id: taskId,
35
39
  authorizedAgentId: formData?.bankEmployeeCode,
36
40
  participants: [
@@ -26,6 +26,7 @@ export type Task = {
26
26
  };
27
27
  participants: Participant[];
28
28
  paymentTypeCd?: PaymentType;
29
+ taskSource?: string;
29
30
  };
30
31
 
31
32
  export type DraftTasksResponse = {
@@ -0,0 +1,9 @@
1
+ import { type ReferalData } from '../model/ReferalData';
2
+ import { doRequest } from './doRequest';
3
+
4
+ export type SaveReferalInfo = ReferalData & {
5
+ taskId: number;
6
+ };
7
+
8
+ export const saveReferalInfo = (body: SaveReferalInfo) =>
9
+ doRequest('/referal/saveReferalInfo', 'POST', body);
@@ -15,12 +15,14 @@ import { creditCodesToProgrammIdMap, creditProgramCodeToProductIdMap } from './u
15
15
  export interface DraftDialogProps extends OnCloseProps {
16
16
  task: Task;
17
17
  isFromLead?: boolean;
18
+ isDebit?: boolean;
18
19
  sendAspects?: (profileId: number, taskId: number) => void;
19
20
  }
20
21
 
21
22
  export const DraftDialog = JSX<DraftDialogProps>(function ({
22
23
  task,
23
24
  isFromLead = false,
25
+ isDebit = false,
24
26
  sendAspects = noop,
25
27
  onClose = noop,
26
28
  }) {
@@ -31,21 +33,31 @@ export const DraftDialog = JSX<DraftDialogProps>(function ({
31
33
 
32
34
  const programmId: string = creditProgramCodeToProductIdMap[creditProgram.code];
33
35
  const isCredit = Boolean(creditCodesToProgrammIdMap[creditProgram.code]);
34
- const nextStepLink = isCredit ? '/credit-lead' : '/credit-card-lead';
36
+ const getNextStepLink = () => {
37
+ if (isDebit) {
38
+ return '/debit-card-lead';
39
+ } else if (isCredit) {
40
+ return '/credit-lead';
41
+ }
42
+
43
+ return '/credit-card-lead';
44
+ };
35
45
 
36
46
  const { id: participantId, profile } = participants[0];
37
47
 
38
48
  const handleGoToDraft = useCallback(() => {
39
- const taskFromDraft = parseDraftTask(task);
49
+ const [taskFromDraft, isTaskWithReferalCode] = parseDraftTask(task);
40
50
  retailFormStore.participantId = participantId ?? null;
41
51
  retailFormStore.taskId = taskId;
42
52
  retailFormStore.profileId = profile?.id ?? null;
43
53
  retailFormStore.programId = programmId;
44
54
  retailFormStore.leadForm = taskFromDraft;
55
+ retailFormStore.referalData = { isTaskWithReferalCode };
56
+
45
57
  if (profile?.id) {
46
58
  sendAspects(profile.id, taskId);
47
59
  }
48
- navigator.assign(nextStepLink);
60
+ navigator.assign(getNextStepLink());
49
61
  }, []);
50
62
 
51
63
  const handleGoToNewTask = useCallback(() => {
@@ -11,13 +11,14 @@ import {
11
11
  INCOME_CERTIFICATE,
12
12
  } from './utils';
13
13
 
14
- export const parseDraftTask = (task: Task): LeadFormState => {
14
+ export const parseDraftTask = (task: Task): [LeadFormState, boolean] => {
15
15
  const participant = task.participants[0];
16
16
  const {
17
17
  classCard: cardCategory,
18
18
  codeWord,
19
19
  paymentSystemTypeCd: paymentSystem,
20
20
  currencyCode: currency,
21
+ taskSource,
21
22
  } = task;
22
23
 
23
24
  const { loanAmount: moneyValue, creditPeriod: monthsValue, paymentTypeCd } = task;
@@ -71,7 +72,7 @@ export const parseDraftTask = (task: Task): LeadFormState => {
71
72
  profile,
72
73
  } = participant;
73
74
 
74
- return {
75
+ const taskFromDraft = {
75
76
  currency: currency?.key,
76
77
  paymentSystem: getSelectValue(paymentSystem),
77
78
  cardCategory: getSelectValue(cardCategory),
@@ -128,4 +129,6 @@ export const parseDraftTask = (task: Task): LeadFormState => {
128
129
  ...getParticipantContacts(participantContacts),
129
130
  ...getParticipantGender(genderCd),
130
131
  };
132
+
133
+ return [taskFromDraft, taskSource === 'ReferalSF'];
131
134
  };
@@ -1,22 +1,16 @@
1
- import type { OnCloseProps } from '../../../model/OnCloseProps';
2
1
  import { useDialog } from '../../../ui-kit/DialogManager/useDialog';
3
- import { type Task } from '../../api/draftTasksKZO';
4
- import { DraftDialog } from './DraftDialog';
2
+ import { DraftDialog, type DraftDialogProps } from './DraftDialog';
5
3
  import { EmptyDraftDialog } from './EmptyDraftDialog';
6
4
 
7
- type useDraftDialogOpenProps = OnCloseProps & {
8
- task?: Task;
9
- isFromLead?: boolean;
10
- sendAspects?: (profileId: number, taskId: number) => void;
11
- };
12
-
13
5
  export const useDraftDialog = () => {
14
6
  const { open: openDraftDialog } = useDialog(DraftDialog);
15
7
  const { open: openEmptyDraftDialog } = useDialog(EmptyDraftDialog);
16
8
 
17
9
  return {
18
- open: ({ task, isFromLead, onClose, sendAspects }: useDraftDialogOpenProps) => {
19
- task ? openDraftDialog({ task, isFromLead, onClose, sendAspects }) : openEmptyDraftDialog({});
10
+ open: ({ task, isFromLead, isDebit, onClose, sendAspects }: Partial<DraftDialogProps>) => {
11
+ task
12
+ ? openDraftDialog({ task, isFromLead, isDebit, onClose, sendAspects })
13
+ : openEmptyDraftDialog({});
20
14
  },
21
15
  };
22
16
  };
@@ -0,0 +1,8 @@
1
+ import { type Nullable } from '../../utils/Nullable';
2
+
3
+ export type ReferalData = {
4
+ refererCode?: Nullable<string>;
5
+ referalCode?: Nullable<string>;
6
+ productId?: Nullable<string>;
7
+ isTaskWithReferalCode?: boolean;
8
+ };
@@ -1,4 +1,4 @@
1
- const QUERY_STORAGE_KEY = 'rshb-query-params';
1
+ export const QUERY_STORAGE_KEY = 'rshb-query-params';
2
2
 
3
3
  export function saveSessionQuery() {
4
4
  const result =
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.14.863",
3
+ "version": "0.14.864",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -4,6 +4,7 @@ import { getParticipantContacts } from '../../retail/adaptors/utils';
4
4
  import { type CreateUserTaskDebitBody } from '../../retail/api/createUserTaskDebit';
5
5
  import { type MarketingInfo, type UpdateUserTaskBody } from '../../retail/api/updateUserTask';
6
6
  import { type LeadFormState } from '../../retail/model/LeadFormState';
7
+ import { type ReferalData } from '../../retail/model/ReferalData';
7
8
  import { formatDate } from '../../utils/formatDate';
8
9
  import { formatPhone } from '../../utils/formatPhone';
9
10
  import { debitProgrammIdToCardCodesMap } from '../DebitForm/utils';
@@ -13,6 +14,7 @@ type getLeadFormTaskDataProps = {
13
14
  taskId: number;
14
15
  profileId: number;
15
16
  formData: LeadFormState;
17
+ isTaskWithReferalCode?: ReferalData['isTaskWithReferalCode'];
16
18
  };
17
19
 
18
20
  export const getCreditLeadFormTaskData = ({
@@ -20,15 +22,17 @@ export const getCreditLeadFormTaskData = ({
20
22
  taskId,
21
23
  profileId,
22
24
  formData,
25
+ isTaskWithReferalCode,
23
26
  }: getLeadFormTaskDataProps): UpdateUserTaskBody => {
24
27
  const { name, surname, middleName, limitedBirthday, phone, email } = formData;
25
28
  const navigator = locationNavigator();
29
+ const taskSource = isTaskWithReferalCode ? 'ReferalSF' : navigator.origin;
26
30
 
27
31
  return {
28
32
  sendToBank: true,
29
33
  taskKind: 'SHORT',
30
34
  task: {
31
- taskSource: navigator.origin,
35
+ taskSource,
32
36
  id: taskId,
33
37
  participants: [
34
38
  {
@@ -58,13 +62,15 @@ export const getCreditLeadFormTaskData = ({
58
62
  export const getDebitLeadFormTaskData = (
59
63
  formData: LeadFormState,
60
64
  programId: string,
65
+ isTaskWithReferalCode: ReferalData['isTaskWithReferalCode'],
61
66
  ): CreateUserTaskDebitBody => {
62
67
  const { name, surname, middleName, limitedBirthday, phone, email } = formData;
63
68
  const navigator = locationNavigator();
69
+ const taskSource = isTaskWithReferalCode ? 'ReferalSF' : navigator.origin;
64
70
 
65
71
  return {
66
72
  task: {
67
- taskSource: navigator.origin,
73
+ taskSource,
68
74
  creditProgram: {
69
75
  code: debitProgrammIdToCardCodesMap[programId],
70
76
  },
@@ -8,18 +8,21 @@ import { createUserProfile } from '../../retail/api/createUserProfile';
8
8
  import { createUserTaskDebit } from '../../retail/api/createUserTaskDebit';
9
9
  import { getLastTaskStatus } from '../../retail/api/getLastTaskStatus';
10
10
  import { getTaskById } from '../../retail/api/getTaskById';
11
+ import { saveReferalInfo } from '../../retail/api/saveReferalInfo';
11
12
  import { updateUserProfile } from '../../retail/api/updateUserProfile';
12
13
  import { updateUserTask } from '../../retail/api/updateUserTask';
13
14
  import { useConsentBkiDialog } from '../../retail/components/ConsentBkiDialog/useConsentBkiDialog';
14
15
  import { useDraftDialog } from '../../retail/components/DraftDialog/useDraftDialog';
15
16
  import { VerifyPhoneDialog } from '../../retail/components/VerifyPhoneDialog/VerifyPhoneDialog';
16
17
  import { type FormRetailConsents, type LeadFormState } from '../../retail/model/LeadFormState';
18
+ import { type ReferalData } from '../../retail/model/ReferalData';
17
19
  import { getUpdateUserProfileData } from '../../retail/utils/getUpdateUserProfile';
18
20
  import { useDialog } from '../../ui-kit/DialogManager/useDialog';
19
21
  import { formatPhone } from '../../utils/formatPhone';
20
22
  import { type ProductType } from './ApplicationLeadFormContent';
21
23
  import { productTypeToConsentsMap } from './consents';
22
24
  import { getCreditLeadFormTaskData, getDebitLeadFormTaskData } from './getLeadFormTaskData';
25
+ import { useLeadFormStore } from './useLeadFormStore';
23
26
  import { useSaveUserData, type UserData } from './useSaveUserData';
24
27
  import { useSendLeadFormAspects } from './useSendLeadFormAspects';
25
28
 
@@ -39,6 +42,8 @@ export const useApplicationLeadApi = ({
39
42
  const [isSending, { setTrue: startSending, setFalse: endSending }] = useBool(false);
40
43
  const [ok, setOK] = useState<boolean | undefined>();
41
44
  const saveUserData = useSaveUserData();
45
+ const leadFormStore = useLeadFormStore();
46
+
42
47
  const sendAspects = useSendLeadFormAspects({ data });
43
48
  const navigator = locationNavigator();
44
49
 
@@ -57,6 +62,7 @@ export const useApplicationLeadApi = ({
57
62
  const profileId = await createUserProfile({
58
63
  profile: { phone: formatPhone(transformedFormData.phone as string) },
59
64
  });
65
+ const referalData = leadFormStore.referalData;
60
66
 
61
67
  if (!profileId) {
62
68
  throw new Error();
@@ -68,6 +74,7 @@ export const useApplicationLeadApi = ({
68
74
  profileId,
69
75
  formData: transformedFormData,
70
76
  productType,
77
+ referalData,
71
78
  saveUserData,
72
79
  sendAspects,
73
80
  });
@@ -88,6 +95,7 @@ export const useApplicationLeadApi = ({
88
95
  draftDialog.open({
89
96
  task,
90
97
  isFromLead: true,
98
+ isDebit: productType === 'debitCard',
91
99
  sendAspects,
92
100
  onClose: sendCurrentTask,
93
101
  });
@@ -129,6 +137,7 @@ const updateUserData = async ({
129
137
  profileId,
130
138
  formData,
131
139
  productType,
140
+ referalData,
132
141
  saveUserData,
133
142
  sendAspects,
134
143
  }: {
@@ -136,18 +145,22 @@ const updateUserData = async ({
136
145
  profileId: number;
137
146
  formData: LeadFormState;
138
147
  productType: ProductType;
148
+ referalData: ReferalData | null;
139
149
  saveUserData: (userData: UserData) => void;
140
150
  sendAspects: (profileId: number, taskId: number) => void;
141
151
  }) => {
142
152
  let taskId: number;
143
153
  let participantId: number;
144
154
  const transformedConsents = transformConsentsFields(formData, productType);
155
+ const isTaskWithReferalCode = referalData?.isTaskWithReferalCode;
145
156
 
146
157
  await updateUserProfile(getUpdateUserProfileData(profileId, formData, transformedConsents));
147
158
 
148
159
  try {
149
160
  if (productType === 'debitCard') {
150
- const debitData = await createUserTaskDebit(getDebitLeadFormTaskData(formData, programId));
161
+ const debitData = await createUserTaskDebit(
162
+ getDebitLeadFormTaskData(formData, programId, isTaskWithReferalCode),
163
+ );
151
164
 
152
165
  taskId = debitData.taskId;
153
166
  participantId = debitData.participantId;
@@ -165,9 +178,16 @@ const updateUserData = async ({
165
178
  taskId,
166
179
  profileId,
167
180
  formData,
181
+ isTaskWithReferalCode,
168
182
  }),
169
183
  );
170
184
  }
185
+ if (isTaskWithReferalCode) {
186
+ await saveReferalInfo({
187
+ taskId,
188
+ ...referalData,
189
+ });
190
+ }
171
191
 
172
192
  sendAspects(profileId, taskId);
173
193
  saveUserData({ participantId, taskId, profileId, programId, formData });
@@ -1,8 +1,11 @@
1
+ /* eslint-disable max-lines-per-function */
1
2
  import { useCallback, useEffect, useMemo } from '@redneckz/uni-jsx/lib/hooks';
2
3
  import { useSetter } from '../../hooks/useSetter';
3
4
  import { esiaRequestProfile } from '../../retail/api/esiaRequestProfile';
4
5
  import { type LeadFormState } from '../../retail/model/LeadFormState';
6
+ import { type ReferalData } from '../../retail/model/ReferalData';
5
7
  import { type FieldRetailDef } from '../../retail/model/RetailFormContent';
8
+ import { QUERY_STORAGE_KEY } from '../../utils/getSessionQuery';
6
9
  import { EsiaStatuses, type ProductType } from './ApplicationLeadFormContent';
7
10
  import { getInitialFormState } from './getInitialFormState';
8
11
  import { parseEsiaProfile } from './parseEsiaProfile';
@@ -24,6 +27,7 @@ export const useInitApplicationLead = ({
24
27
  }: InitApplicationLeadProps): LeadFormState => {
25
28
  const leadFormStore = useLeadFormStore();
26
29
  const saveForm = useSetter(leadFormStore, 'leadForm');
30
+ const queryFromStorage = globalThis.sessionStorage?.getItem(QUERY_STORAGE_KEY);
27
31
 
28
32
  const initialFormState = useMemo(
29
33
  () => getInitialFormState(inputs, leadFormStore.leadForm, esiaAuthSuccess),
@@ -57,9 +61,26 @@ export const useInitApplicationLead = ({
57
61
  useEffect(() => {
58
62
  leadFormStore.productType = productType;
59
63
 
60
- const params = new URLSearchParams(decodeURIComponent(globalThis.location?.search));
61
- const code = params.get('code');
62
- const state = params.get('state');
64
+ const { code, state, referalCode, refererCode, productId } = getLeadQueryParams(
65
+ leadFormStore.referalData,
66
+ queryFromStorage,
67
+ );
68
+
69
+ if (referalCode) {
70
+ leadFormStore.referalData = {
71
+ refererCode,
72
+ referalCode,
73
+ productId,
74
+ isTaskWithReferalCode: true,
75
+ };
76
+ } else if (!code) {
77
+ leadFormStore.referalData = {
78
+ refererCode: null,
79
+ referalCode: null,
80
+ productId: null,
81
+ isTaskWithReferalCode: false,
82
+ };
83
+ }
63
84
 
64
85
  if (code && state) {
65
86
  requestEsiaProfile(code, state);
@@ -67,7 +88,25 @@ export const useInitApplicationLead = ({
67
88
  sessionStorage.removeItem('accessToken');
68
89
  sessionStorage.removeItem('refreshToken');
69
90
  }
70
- }, []);
91
+ }, [queryFromStorage]);
71
92
 
72
93
  return initialFormState;
73
94
  };
95
+
96
+ const getLeadQueryParams = (referalData: ReferalData | null, queryFromStorage: string | null) => {
97
+ const queryStorage = new URLSearchParams(decodeURIComponent(queryFromStorage || ''));
98
+
99
+ const code = queryStorage.get('code');
100
+ const state = queryStorage.get('state');
101
+ const referalCode = code ? referalData?.referalCode : queryStorage.get('referalCode');
102
+ const refererCode = code ? referalData?.refererCode : queryStorage.get('refererCode');
103
+ const productId = code ? referalData?.productId : queryStorage.get('productId');
104
+
105
+ return {
106
+ code,
107
+ state,
108
+ referalCode,
109
+ refererCode,
110
+ productId,
111
+ };
112
+ };
@@ -1,5 +1,6 @@
1
1
  import { useLocalStore } from '@redneckz/uni-jsx/lib/Store/useLocalStore';
2
2
  import { type LeadFormState } from '../../retail/model/LeadFormState';
3
+ import { type ReferalData } from '../../retail/model/ReferalData';
3
4
  import { type ProductType } from './ApplicationLeadFormContent';
4
5
 
5
6
  export interface LeadFormStoreSlice {
@@ -9,6 +10,7 @@ export interface LeadFormStoreSlice {
9
10
  participantId: number;
10
11
  programId: string;
11
12
  productType: ProductType;
13
+ referalData: ReferalData;
12
14
  }
13
15
 
14
16
  export const useLeadFormStore = () => useLocalStore<LeadFormStoreSlice>();