@redneckz/wildless-cms-uni-blocks 0.14.972 → 0.14.974

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 (210) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +157 -25
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/ApplicationLeadForm/getLeadFormTaskData.d.ts +7 -1
  5. package/bundle/components/ApplicationLeadForm/useInitApplicationLead.d.ts +1 -0
  6. package/bundle/components/GalleryLayout/utils.d.ts +2 -2
  7. package/bundle/components/ProductBlock/ProductBlock.d.ts +4 -0
  8. package/bundle/components/ProductBlock/ProductBlockContent.d.ts +2 -2
  9. package/bundle/model/HeadlineType.d.ts +14 -1
  10. package/bundle/retail/api/createUserTaskDebit.d.ts +1 -0
  11. package/bundle/retail/api/getClaimChannel.d.ts +8 -0
  12. package/bundle/retail/hooks/useBiblioglobusDefaultRegion.d.ts +14 -0
  13. package/bundle/retail/utils/filterPaymentSystems.d.ts +4 -0
  14. package/bundle/retail/utils/hasDelivery.d.ts +10 -0
  15. package/bundle/utils/getSlugFromUrl.d.ts +1 -0
  16. package/dist/components/ApplicationLeadForm/getLeadFormTaskData.d.ts +7 -1
  17. package/dist/components/ApplicationLeadForm/getLeadFormTaskData.js +2 -1
  18. package/dist/components/ApplicationLeadForm/getLeadFormTaskData.js.map +1 -1
  19. package/dist/components/ApplicationLeadForm/useApplicationLeadApi.js +24 -4
  20. package/dist/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  21. package/dist/components/ApplicationLeadForm/useInitApplicationLead.d.ts +1 -0
  22. package/dist/components/ApplicationLeadForm/useInitApplicationLead.js +4 -0
  23. package/dist/components/ApplicationLeadForm/useInitApplicationLead.js.map +1 -1
  24. package/dist/components/GalleryLayout/utils.d.ts +2 -2
  25. package/dist/components/ProductBlock/ProductBlock.d.ts +4 -0
  26. package/dist/components/ProductBlock/ProductBlock.js +16 -1
  27. package/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  28. package/dist/components/ProductBlock/ProductBlockContent.d.ts +2 -2
  29. package/dist/model/HeadlineType.d.ts +14 -1
  30. package/dist/retail/api/createUserTaskDebit.d.ts +1 -0
  31. package/dist/retail/api/createUserTaskDebit.js.map +1 -1
  32. package/dist/retail/api/getClaimChannel.d.ts +8 -0
  33. package/dist/retail/api/getClaimChannel.js +9 -0
  34. package/dist/retail/api/getClaimChannel.js.map +1 -0
  35. package/dist/retail/components/Fields/AddressRetailField.js +20 -0
  36. package/dist/retail/components/Fields/AddressRetailField.js.map +1 -1
  37. package/dist/retail/components/Fields/PaymentSystemField.js +14 -2
  38. package/dist/retail/components/Fields/PaymentSystemField.js.map +1 -1
  39. package/dist/retail/components/Fields/RegionRetailField.js +20 -7
  40. package/dist/retail/components/Fields/RegionRetailField.js.map +1 -1
  41. package/dist/retail/hooks/useBiblioglobusDefaultRegion.d.ts +14 -0
  42. package/dist/retail/hooks/useBiblioglobusDefaultRegion.js +34 -0
  43. package/dist/retail/hooks/useBiblioglobusDefaultRegion.js.map +1 -0
  44. package/dist/retail/utils/filterPaymentSystems.d.ts +4 -0
  45. package/dist/retail/utils/filterPaymentSystems.js +13 -0
  46. package/dist/retail/utils/filterPaymentSystems.js.map +1 -0
  47. package/dist/retail/utils/hasDelivery.d.ts +10 -0
  48. package/dist/retail/utils/hasDelivery.js +13 -0
  49. package/dist/retail/utils/hasDelivery.js.map +1 -0
  50. package/dist/utils/getSlugFromUrl.d.ts +1 -0
  51. package/dist/utils/getSlugFromUrl.js +12 -0
  52. package/dist/utils/getSlugFromUrl.js.map +1 -0
  53. package/lib/components/ApplicationLeadForm/getLeadFormTaskData.d.ts +7 -1
  54. package/lib/components/ApplicationLeadForm/getLeadFormTaskData.js +2 -1
  55. package/lib/components/ApplicationLeadForm/getLeadFormTaskData.js.map +1 -1
  56. package/lib/components/ApplicationLeadForm/useApplicationLeadApi.js +24 -4
  57. package/lib/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  58. package/lib/components/ApplicationLeadForm/useInitApplicationLead.d.ts +1 -0
  59. package/lib/components/ApplicationLeadForm/useInitApplicationLead.js +4 -0
  60. package/lib/components/ApplicationLeadForm/useInitApplicationLead.js.map +1 -1
  61. package/lib/components/GalleryLayout/utils.d.ts +2 -2
  62. package/lib/components/ProductBlock/ProductBlock.d.ts +4 -0
  63. package/lib/components/ProductBlock/ProductBlock.fixture.d.ts +1 -0
  64. package/lib/components/ProductBlock/ProductBlock.js +16 -1
  65. package/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  66. package/lib/components/ProductBlock/ProductBlockContent.d.ts +2 -2
  67. package/lib/model/HeadlineType.d.ts +14 -1
  68. package/lib/retail/api/createUserTaskDebit.d.ts +1 -0
  69. package/lib/retail/api/createUserTaskDebit.js.map +1 -1
  70. package/lib/retail/api/getClaimChannel.d.ts +8 -0
  71. package/lib/retail/api/getClaimChannel.js +6 -0
  72. package/lib/retail/api/getClaimChannel.js.map +1 -0
  73. package/lib/retail/components/Fields/AddressRetailField.js +20 -0
  74. package/lib/retail/components/Fields/AddressRetailField.js.map +1 -1
  75. package/lib/retail/components/Fields/PaymentSystemField.js +14 -2
  76. package/lib/retail/components/Fields/PaymentSystemField.js.map +1 -1
  77. package/lib/retail/components/Fields/RegionRetailField.js +20 -7
  78. package/lib/retail/components/Fields/RegionRetailField.js.map +1 -1
  79. package/lib/retail/hooks/useBiblioglobusDefaultRegion.d.ts +14 -0
  80. package/lib/retail/hooks/useBiblioglobusDefaultRegion.js +31 -0
  81. package/lib/retail/hooks/useBiblioglobusDefaultRegion.js.map +1 -0
  82. package/lib/retail/utils/filterPaymentSystems.d.ts +4 -0
  83. package/lib/retail/utils/filterPaymentSystems.js +10 -0
  84. package/lib/retail/utils/filterPaymentSystems.js.map +1 -0
  85. package/lib/retail/utils/hasDelivery.d.ts +10 -0
  86. package/lib/retail/utils/hasDelivery.js +9 -0
  87. package/lib/retail/utils/hasDelivery.js.map +1 -0
  88. package/lib/utils/getSlugFromUrl.d.ts +1 -0
  89. package/lib/utils/getSlugFromUrl.js +9 -0
  90. package/lib/utils/getSlugFromUrl.js.map +1 -0
  91. package/mobile/bundle/bundle.umd.js +157 -25
  92. package/mobile/bundle/bundle.umd.min.js +1 -1
  93. package/mobile/bundle/components/ApplicationLeadForm/getLeadFormTaskData.d.ts +7 -1
  94. package/mobile/bundle/components/ApplicationLeadForm/useInitApplicationLead.d.ts +1 -0
  95. package/mobile/bundle/components/GalleryLayout/utils.d.ts +2 -2
  96. package/mobile/bundle/components/ProductBlock/ProductBlock.d.ts +4 -0
  97. package/mobile/bundle/components/ProductBlock/ProductBlockContent.d.ts +2 -2
  98. package/mobile/bundle/model/HeadlineType.d.ts +14 -1
  99. package/mobile/bundle/retail/api/createUserTaskDebit.d.ts +1 -0
  100. package/mobile/bundle/retail/api/getClaimChannel.d.ts +8 -0
  101. package/mobile/bundle/retail/hooks/useBiblioglobusDefaultRegion.d.ts +14 -0
  102. package/mobile/bundle/retail/utils/filterPaymentSystems.d.ts +4 -0
  103. package/mobile/bundle/retail/utils/hasDelivery.d.ts +10 -0
  104. package/mobile/bundle/utils/getSlugFromUrl.d.ts +1 -0
  105. package/mobile/dist/components/ApplicationLeadForm/getLeadFormTaskData.d.ts +7 -1
  106. package/mobile/dist/components/ApplicationLeadForm/getLeadFormTaskData.js +2 -1
  107. package/mobile/dist/components/ApplicationLeadForm/getLeadFormTaskData.js.map +1 -1
  108. package/mobile/dist/components/ApplicationLeadForm/useApplicationLeadApi.js +24 -4
  109. package/mobile/dist/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  110. package/mobile/dist/components/ApplicationLeadForm/useInitApplicationLead.d.ts +1 -0
  111. package/mobile/dist/components/ApplicationLeadForm/useInitApplicationLead.js +4 -0
  112. package/mobile/dist/components/ApplicationLeadForm/useInitApplicationLead.js.map +1 -1
  113. package/mobile/dist/components/GalleryLayout/utils.d.ts +2 -2
  114. package/mobile/dist/components/ProductBlock/ProductBlock.d.ts +4 -0
  115. package/mobile/dist/components/ProductBlock/ProductBlock.js +16 -1
  116. package/mobile/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  117. package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +2 -2
  118. package/mobile/dist/model/HeadlineType.d.ts +14 -1
  119. package/mobile/dist/retail/api/createUserTaskDebit.d.ts +1 -0
  120. package/mobile/dist/retail/api/createUserTaskDebit.js.map +1 -1
  121. package/mobile/dist/retail/api/getClaimChannel.d.ts +8 -0
  122. package/mobile/dist/retail/api/getClaimChannel.js +9 -0
  123. package/mobile/dist/retail/api/getClaimChannel.js.map +1 -0
  124. package/mobile/dist/retail/components/Fields/AddressRetailField.js +20 -0
  125. package/mobile/dist/retail/components/Fields/AddressRetailField.js.map +1 -1
  126. package/mobile/dist/retail/components/Fields/PaymentSystemField.js +14 -2
  127. package/mobile/dist/retail/components/Fields/PaymentSystemField.js.map +1 -1
  128. package/mobile/dist/retail/components/Fields/RegionRetailField.js +20 -7
  129. package/mobile/dist/retail/components/Fields/RegionRetailField.js.map +1 -1
  130. package/mobile/dist/retail/hooks/useBiblioglobusDefaultRegion.d.ts +14 -0
  131. package/mobile/dist/retail/hooks/useBiblioglobusDefaultRegion.js +34 -0
  132. package/mobile/dist/retail/hooks/useBiblioglobusDefaultRegion.js.map +1 -0
  133. package/mobile/dist/retail/utils/filterPaymentSystems.d.ts +4 -0
  134. package/mobile/dist/retail/utils/filterPaymentSystems.js +13 -0
  135. package/mobile/dist/retail/utils/filterPaymentSystems.js.map +1 -0
  136. package/mobile/dist/retail/utils/hasDelivery.d.ts +10 -0
  137. package/mobile/dist/retail/utils/hasDelivery.js +13 -0
  138. package/mobile/dist/retail/utils/hasDelivery.js.map +1 -0
  139. package/mobile/dist/utils/getSlugFromUrl.d.ts +1 -0
  140. package/mobile/dist/utils/getSlugFromUrl.js +12 -0
  141. package/mobile/dist/utils/getSlugFromUrl.js.map +1 -0
  142. package/mobile/lib/components/ApplicationLeadForm/getLeadFormTaskData.d.ts +7 -1
  143. package/mobile/lib/components/ApplicationLeadForm/getLeadFormTaskData.js +2 -1
  144. package/mobile/lib/components/ApplicationLeadForm/getLeadFormTaskData.js.map +1 -1
  145. package/mobile/lib/components/ApplicationLeadForm/useApplicationLeadApi.js +24 -4
  146. package/mobile/lib/components/ApplicationLeadForm/useApplicationLeadApi.js.map +1 -1
  147. package/mobile/lib/components/ApplicationLeadForm/useInitApplicationLead.d.ts +1 -0
  148. package/mobile/lib/components/ApplicationLeadForm/useInitApplicationLead.js +4 -0
  149. package/mobile/lib/components/ApplicationLeadForm/useInitApplicationLead.js.map +1 -1
  150. package/mobile/lib/components/GalleryLayout/utils.d.ts +2 -2
  151. package/mobile/lib/components/ProductBlock/ProductBlock.d.ts +4 -0
  152. package/mobile/lib/components/ProductBlock/ProductBlock.js +16 -1
  153. package/mobile/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  154. package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +2 -2
  155. package/mobile/lib/model/HeadlineType.d.ts +14 -1
  156. package/mobile/lib/retail/api/createUserTaskDebit.d.ts +1 -0
  157. package/mobile/lib/retail/api/createUserTaskDebit.js.map +1 -1
  158. package/mobile/lib/retail/api/getClaimChannel.d.ts +8 -0
  159. package/mobile/lib/retail/api/getClaimChannel.js +6 -0
  160. package/mobile/lib/retail/api/getClaimChannel.js.map +1 -0
  161. package/mobile/lib/retail/components/Fields/AddressRetailField.js +20 -0
  162. package/mobile/lib/retail/components/Fields/AddressRetailField.js.map +1 -1
  163. package/mobile/lib/retail/components/Fields/PaymentSystemField.js +14 -2
  164. package/mobile/lib/retail/components/Fields/PaymentSystemField.js.map +1 -1
  165. package/mobile/lib/retail/components/Fields/RegionRetailField.js +20 -7
  166. package/mobile/lib/retail/components/Fields/RegionRetailField.js.map +1 -1
  167. package/mobile/lib/retail/hooks/useBiblioglobusDefaultRegion.d.ts +14 -0
  168. package/mobile/lib/retail/hooks/useBiblioglobusDefaultRegion.js +31 -0
  169. package/mobile/lib/retail/hooks/useBiblioglobusDefaultRegion.js.map +1 -0
  170. package/mobile/lib/retail/utils/filterPaymentSystems.d.ts +4 -0
  171. package/mobile/lib/retail/utils/filterPaymentSystems.js +10 -0
  172. package/mobile/lib/retail/utils/filterPaymentSystems.js.map +1 -0
  173. package/mobile/lib/retail/utils/hasDelivery.d.ts +10 -0
  174. package/mobile/lib/retail/utils/hasDelivery.js +9 -0
  175. package/mobile/lib/retail/utils/hasDelivery.js.map +1 -0
  176. package/mobile/lib/utils/getSlugFromUrl.d.ts +1 -0
  177. package/mobile/lib/utils/getSlugFromUrl.js +9 -0
  178. package/mobile/lib/utils/getSlugFromUrl.js.map +1 -0
  179. package/mobile/src/components/ApplicationLeadForm/getLeadFormTaskData.ts +14 -5
  180. package/mobile/src/components/ApplicationLeadForm/useApplicationLeadApi.tsx +32 -3
  181. package/mobile/src/components/ApplicationLeadForm/useInitApplicationLead.ts +6 -0
  182. package/mobile/src/components/ProductBlock/ProductBlock.tsx +57 -14
  183. package/mobile/src/components/ProductBlock/ProductBlockContent.ts +6 -2
  184. package/mobile/src/model/HeadlineType.ts +20 -1
  185. package/mobile/src/retail/api/createUserTaskDebit.ts +1 -0
  186. package/mobile/src/retail/api/getClaimChannel.ts +18 -0
  187. package/mobile/src/retail/components/Fields/AddressRetailField.tsx +26 -0
  188. package/mobile/src/retail/components/Fields/PaymentSystemField.tsx +21 -2
  189. package/mobile/src/retail/components/Fields/RegionRetailField.tsx +22 -7
  190. package/mobile/src/retail/hooks/useBiblioglobusDefaultRegion.ts +56 -0
  191. package/mobile/src/retail/utils/filterPaymentSystems.ts +14 -0
  192. package/mobile/src/retail/utils/hasDelivery.ts +22 -0
  193. package/mobile/src/utils/getSlugFromUrl.ts +10 -0
  194. package/package.json +2 -2
  195. package/src/components/ApplicationLeadForm/getLeadFormTaskData.ts +14 -5
  196. package/src/components/ApplicationLeadForm/useApplicationLeadApi.tsx +32 -3
  197. package/src/components/ApplicationLeadForm/useInitApplicationLead.ts +6 -0
  198. package/src/components/ProductBlock/ProductBlock.fixture.tsx +22 -0
  199. package/src/components/ProductBlock/ProductBlock.tsx +57 -14
  200. package/src/components/ProductBlock/ProductBlockContent.ts +6 -2
  201. package/src/model/HeadlineType.ts +20 -1
  202. package/src/retail/api/createUserTaskDebit.ts +1 -0
  203. package/src/retail/api/getClaimChannel.ts +18 -0
  204. package/src/retail/components/Fields/AddressRetailField.tsx +26 -0
  205. package/src/retail/components/Fields/PaymentSystemField.tsx +21 -2
  206. package/src/retail/components/Fields/RegionRetailField.tsx +22 -7
  207. package/src/retail/hooks/useBiblioglobusDefaultRegion.ts +56 -0
  208. package/src/retail/utils/filterPaymentSystems.ts +14 -0
  209. package/src/retail/utils/hasDelivery.ts +22 -0
  210. package/src/utils/getSlugFromUrl.ts +10 -0
@@ -1,11 +1,14 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useMemo, useState } from '@redneckz/uni-jsx/lib/hooks';
3
3
  import { useLocalStore } from '@redneckz/uni-jsx/lib/Store/useLocalStore';
4
+ import { useSessionStore } from '@redneckz/uni-jsx/lib/Store/useSessionStore';
4
5
  import { useAsyncEffect } from '../../../hooks/useAsyncEffect';
5
6
  import { type CustomFieldProps } from '../../../ui-kit/FormField/CustomFieldProps';
6
7
  import { RadioButtonGroupControl } from '../../../ui-kit/RadioButtonGroup/RadioButtonGroupControl';
7
8
  import { type Option } from '../../../ui-kit/Select/Option';
9
+ import { getCardSlugFromUrl } from '../../../utils/getSlugFromUrl';
8
10
  import { getPaymentSystems } from '../../api/getPaymentSystems';
11
+ import { filterPaymentSystems } from '../../utils/filterPaymentSystems';
9
12
 
10
13
  const optionKey = (option: { key?: string } | undefined) => option?.key;
11
14
 
@@ -13,12 +16,28 @@ export const PaymentSystemField = JSX<CustomFieldProps>(({ field, input }) => {
13
16
  const [paymentSystemOptions, setPaymentSystemOptions] = useState<Option[]>([]);
14
17
 
15
18
  const localStore = useLocalStore<{ programId: string }>();
19
+ const sessionStore = useSessionStore<{ referrerUrl?: string }>();
20
+
16
21
  useAsyncEffect(async () => {
17
22
  const { programId } = localStore;
18
- if (programId) {
19
- const fetchedPaymentSystems = await getPaymentSystems(programId);
23
+ if (!programId) {
24
+ return;
25
+ }
26
+
27
+ const fetchedPaymentSystems = await getPaymentSystems(programId);
28
+
29
+ const referrerUrl = sessionStore.referrerUrl;
30
+
31
+ if (!referrerUrl) {
20
32
  setPaymentSystemOptions(fetchedPaymentSystems ?? []);
33
+
34
+ return;
21
35
  }
36
+
37
+ const slug = getCardSlugFromUrl(referrerUrl);
38
+ const filteredSystems = filterPaymentSystems(fetchedPaymentSystems ?? [], slug);
39
+
40
+ setPaymentSystemOptions(filteredSystems);
22
41
  }, []);
23
42
 
24
43
  const items = useMemo(
@@ -1,19 +1,24 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useCallback, useEffect } from '@redneckz/uni-jsx/lib/hooks';
3
3
  import { useAsyncData } from '@redneckz/uni-jsx/lib/hooks/useAsyncData';
4
+ import { useSessionStore } from '@redneckz/uni-jsx/lib/Store/useSessionStore';
4
5
  import { type ProductType } from '../../../components/ApplicationLeadForm/ApplicationLeadFormContent';
5
6
  import { type CustomFieldProps } from '../../../ui-kit/FormField/CustomFieldProps';
6
7
  import { type Option } from '../../../ui-kit/Select/Option';
7
8
  import { SelectControl } from '../../../ui-kit/Select/SelectControl';
8
9
  import { getRegionsCardDelivery } from '../../api/getRegionsCardDelivery';
10
+ import { useBiblioglobusDefaultRegion } from '../../hooks/useBiblioglobusDefaultRegion';
9
11
  import { useLeadFormData } from '../../hooks/useLeadFormData';
10
12
  import { useRetailFormStore } from '../../hooks/useRetailFormStore';
13
+ import { calculateRegionHasDelivery, getRegionDeliveryStatus } from '../../utils/hasDelivery';
11
14
 
12
15
  export const RegionRetailField = JSX<CustomFieldProps>(({ field, input }) => {
13
16
  const { programId, productType } = useRetailFormStore();
14
17
  const { data: regions } = useLeadFormData('REGION_RF');
15
18
  const { data: regionsDelivery } = useAsyncData('regionsDelivery', getRegionsCardDelivery);
16
19
  const { data: productSettings } = useLeadFormData(getCurrentProductSettings(productType));
20
+ const sessionStore = useSessionStore<{ referrerUrl?: string }>();
21
+
17
22
  const isDebit = productType === 'debitCard';
18
23
  const isSalaryCard = programId === '38';
19
24
  const isEsiaAuth = Boolean(field('esiaAccountTypeCd')?.value?.key);
@@ -24,20 +29,30 @@ export const RegionRetailField = JSX<CustomFieldProps>(({ field, input }) => {
24
29
  const handleChangeRegionHasDelivery = field('regionHasDelivery')?.onChange;
25
30
  const handleChangeMethodObtain = field('methodObtain')?.onChange;
26
31
 
32
+ useBiblioglobusDefaultRegion({
33
+ referrerUrl: sessionStore.referrerUrl ?? undefined,
34
+ regions,
35
+ regionsDelivery,
36
+ onRegionChange: handleChangeRegion,
37
+ onRegionHasDeliveryChange: handleChangeRegionHasDelivery,
38
+ onMethodObtainChange: handleChangeMethodObtain,
39
+ });
40
+
27
41
  const onChange = useCallback(
28
42
  (value: Option) => {
29
- const regionHasDelivery = isDebit
30
- ? isEsiaAuth &&
31
- !isSalaryCard &&
32
- isDeliveryActive &&
33
- regionsDelivery?.find((_) => _.regionCode === value.key)?.deliveryFlg
34
- : isDeliveryActive && regionsDelivery?.find((_) => _.regionCode === value.key)?.deliveryFlg;
43
+ const regionHasDelivery = calculateRegionHasDelivery({
44
+ isDebit,
45
+ isEsiaAuth,
46
+ isSalaryCard,
47
+ isDeliveryActive,
48
+ regionDelivery: getRegionDeliveryStatus(regionsDelivery, value),
49
+ });
35
50
 
36
51
  handleChangeRegionHasDelivery?.(regionHasDelivery);
37
52
  handleChangeMethodObtain?.(regionHasDelivery ? 'courier' : 'office');
38
53
  handleChangeRegion?.(value);
39
54
  },
40
- [regionsDelivery, isDeliveryActive, isEsiaAuth],
55
+ [calculateRegionHasDelivery],
41
56
  );
42
57
 
43
58
  useEffect(() => {
@@ -0,0 +1,56 @@
1
+ import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { type Option } from '../../ui-kit/Select/Option';
3
+ import { getCardSlugFromUrl } from '../../utils/getSlugFromUrl';
4
+ import { type DictionaryItem } from '../model/LeadFormData';
5
+ import { BIBLIOGLOBUS_SLUG } from '../utils/filterPaymentSystems';
6
+
7
+ export type RegionDelivery = { regionCode: string; deliveryFlg: boolean };
8
+
9
+ export const useBiblioglobusDefaultRegion = (args: {
10
+ referrerUrl?: string;
11
+ regions?: DictionaryItem[];
12
+ regionsDelivery?: RegionDelivery[];
13
+ onRegionChange?: (option: Option) => void;
14
+ onRegionHasDeliveryChange?: (value: boolean) => void;
15
+ onMethodObtainChange?: (value: string) => void;
16
+ }) => {
17
+ const {
18
+ referrerUrl,
19
+ regions,
20
+ regionsDelivery,
21
+ onRegionChange,
22
+ onRegionHasDeliveryChange,
23
+ onMethodObtainChange,
24
+ } = args;
25
+
26
+ const slug = referrerUrl ? getCardSlugFromUrl(referrerUrl) : '';
27
+ const defaultRegion = regions?.find((region) => region.key === 'REGION_77');
28
+ const regionHasDelivery = Boolean(
29
+ regionsDelivery?.find((rd) => rd.regionCode === 'REGION_77')?.deliveryFlg,
30
+ );
31
+ const isReady = Boolean(
32
+ referrerUrl &&
33
+ regions &&
34
+ regionsDelivery &&
35
+ slug === BIBLIOGLOBUS_SLUG &&
36
+ defaultRegion?.key &&
37
+ defaultRegion?.value,
38
+ );
39
+
40
+ useEffect(() => {
41
+ if (!isReady || !defaultRegion || !defaultRegion.key || !defaultRegion.value) {
42
+ return;
43
+ }
44
+
45
+ onRegionChange?.({ key: defaultRegion.key, text: defaultRegion.value });
46
+ onRegionHasDeliveryChange?.(regionHasDelivery);
47
+ onMethodObtainChange?.(regionHasDelivery ? 'courier' : 'office');
48
+ }, [
49
+ isReady,
50
+ defaultRegion,
51
+ regionHasDelivery,
52
+ onRegionChange,
53
+ onRegionHasDeliveryChange,
54
+ onMethodObtainChange,
55
+ ]);
56
+ };
@@ -0,0 +1,14 @@
1
+ import { type Option } from '../../ui-kit/Select/Option';
2
+
3
+ const BIBLIOGLOBUS_SLUG = 'biblioglobus';
4
+ const UNIONPAY_TEXT = 'UnionPay';
5
+
6
+ export const filterPaymentSystems = (systems: Option[], slug: string | null): Option[] => {
7
+ if (slug !== BIBLIOGLOBUS_SLUG) {
8
+ return systems;
9
+ }
10
+
11
+ return systems.filter((system) => system.text === UNIONPAY_TEXT);
12
+ };
13
+
14
+ export { BIBLIOGLOBUS_SLUG };
@@ -0,0 +1,22 @@
1
+ import { type Option } from '../../ui-kit/Select/Option';
2
+ import { type RegionDelivery } from '../hooks/useBiblioglobusDefaultRegion';
3
+
4
+ export const getRegionDeliveryStatus = (
5
+ regionsDelivery: RegionDelivery[] | undefined,
6
+ value: Option,
7
+ ) => regionsDelivery?.find((_) => _.regionCode === String(value.key))?.deliveryFlg;
8
+
9
+ export const calculateRegionHasDelivery = (args: {
10
+ isDebit: boolean;
11
+ isEsiaAuth: boolean;
12
+ isSalaryCard: boolean;
13
+ isDeliveryActive: boolean;
14
+ regionDelivery?: boolean;
15
+ }) => {
16
+ const { isDebit, isEsiaAuth, isSalaryCard, isDeliveryActive, regionDelivery } = args;
17
+ if (isDebit) {
18
+ return isEsiaAuth && !isSalaryCard && isDeliveryActive && regionDelivery;
19
+ }
20
+
21
+ return isDeliveryActive && regionDelivery;
22
+ };
@@ -0,0 +1,10 @@
1
+ export function getCardSlugFromUrl(url: string): string | null {
2
+ const lastSegment = url.split('/').filter(Boolean).pop();
3
+ if (!lastSegment) {
4
+ return null;
5
+ }
6
+
7
+ const parts = lastSegment.split('-');
8
+
9
+ return parts.length > 1 ? parts[parts.length - 1] : null;
10
+ }