@redneckz/wildless-cms-uni-blocks 0.14.1064 → 0.14.1066
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.
- package/bundle/blocks.schema.json +1 -1
- package/bundle/bundle.umd.js +58 -32
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/RatesTable/RatesTable.d.ts +3 -0
- package/bundle/components/RatesTable/RatesTableContent.d.ts +13 -3
- package/bundle/components/RatesTable/RatesTableItem.d.ts +2 -2
- package/bundle/hooks/useRates.d.ts +11 -2
- package/dist/components/CreditCardForm/getDeliveryCreditCardData.js +6 -0
- package/dist/components/CreditCardForm/getDeliveryCreditCardData.js.map +1 -1
- package/dist/components/CreditCardForm/useCreditCardFormAPI.js +2 -1
- package/dist/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
- package/dist/components/RatesTable/RatesTable.d.ts +3 -0
- package/dist/components/RatesTable/RatesTable.js +23 -5
- package/dist/components/RatesTable/RatesTable.js.map +1 -1
- package/dist/components/RatesTable/RatesTableContent.d.ts +13 -3
- package/dist/components/RatesTable/RatesTableItem.d.ts +2 -2
- package/dist/components/RatesTable/RatesTableItem.js.map +1 -1
- package/dist/hooks/useRates.d.ts +11 -2
- package/dist/hooks/useRates.js +28 -20
- package/dist/hooks/useRates.js.map +1 -1
- package/dist/retail/components/Fields/DeliveryDateField.js +1 -5
- package/dist/retail/components/Fields/DeliveryDateField.js.map +1 -1
- package/dist/retail/components/Fields/DeliveryTimeField.js +1 -0
- package/dist/retail/components/Fields/DeliveryTimeField.js.map +1 -1
- package/lib/components/CreditCardForm/getDeliveryCreditCardData.js +6 -0
- package/lib/components/CreditCardForm/getDeliveryCreditCardData.js.map +1 -1
- package/lib/components/CreditCardForm/useCreditCardFormAPI.js +2 -1
- package/lib/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
- package/lib/components/OfficesAtmsMap/OfficesAtmsMapLayout.d.ts +1 -1
- package/lib/components/RatesTable/RatesTable.d.ts +3 -0
- package/lib/components/RatesTable/RatesTable.fixture.d.ts +1 -1
- package/lib/components/RatesTable/RatesTable.fixture.mobile.d.ts +1 -1
- package/lib/components/RatesTable/RatesTable.js +23 -5
- package/lib/components/RatesTable/RatesTable.js.map +1 -1
- package/lib/components/RatesTable/RatesTableContent.d.ts +13 -3
- package/lib/components/RatesTable/RatesTableItem.d.ts +2 -2
- package/lib/components/RatesTable/RatesTableItem.js.map +1 -1
- package/lib/hooks/useRates.d.ts +11 -2
- package/lib/hooks/useRates.js +28 -20
- package/lib/hooks/useRates.js.map +1 -1
- package/lib/retail/components/Fields/DeliveryDateField.js +1 -5
- package/lib/retail/components/Fields/DeliveryDateField.js.map +1 -1
- package/lib/retail/components/Fields/DeliveryTimeField.js +1 -0
- package/lib/retail/components/Fields/DeliveryTimeField.js.map +1 -1
- package/mobile/bundle/bundle.umd.js +58 -32
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/RatesTable/RatesTable.d.ts +3 -0
- package/mobile/bundle/components/RatesTable/RatesTableContent.d.ts +13 -3
- package/mobile/bundle/components/RatesTable/RatesTableItem.d.ts +2 -2
- package/mobile/bundle/hooks/useRates.d.ts +11 -2
- package/mobile/dist/components/CreditCardForm/getDeliveryCreditCardData.js +6 -0
- package/mobile/dist/components/CreditCardForm/getDeliveryCreditCardData.js.map +1 -1
- package/mobile/dist/components/CreditCardForm/useCreditCardFormAPI.js +2 -1
- package/mobile/dist/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
- package/mobile/dist/components/RatesTable/RatesTable.d.ts +3 -0
- package/mobile/dist/components/RatesTable/RatesTable.js +23 -5
- package/mobile/dist/components/RatesTable/RatesTable.js.map +1 -1
- package/mobile/dist/components/RatesTable/RatesTableContent.d.ts +13 -3
- package/mobile/dist/components/RatesTable/RatesTableItem.d.ts +2 -2
- package/mobile/dist/components/RatesTable/RatesTableItem.js.map +1 -1
- package/mobile/dist/hooks/useRates.d.ts +11 -2
- package/mobile/dist/hooks/useRates.js +28 -20
- package/mobile/dist/hooks/useRates.js.map +1 -1
- package/mobile/dist/retail/components/Fields/DeliveryDateField.js +1 -5
- package/mobile/dist/retail/components/Fields/DeliveryDateField.js.map +1 -1
- package/mobile/dist/retail/components/Fields/DeliveryTimeField.js +1 -0
- package/mobile/dist/retail/components/Fields/DeliveryTimeField.js.map +1 -1
- package/mobile/lib/components/CreditCardForm/getDeliveryCreditCardData.js +6 -0
- package/mobile/lib/components/CreditCardForm/getDeliveryCreditCardData.js.map +1 -1
- package/mobile/lib/components/CreditCardForm/useCreditCardFormAPI.js +2 -1
- package/mobile/lib/components/CreditCardForm/useCreditCardFormAPI.js.map +1 -1
- package/mobile/lib/components/RatesTable/RatesTable.d.ts +3 -0
- package/mobile/lib/components/RatesTable/RatesTable.js +23 -5
- package/mobile/lib/components/RatesTable/RatesTable.js.map +1 -1
- package/mobile/lib/components/RatesTable/RatesTableContent.d.ts +13 -3
- package/mobile/lib/components/RatesTable/RatesTableItem.d.ts +2 -2
- package/mobile/lib/components/RatesTable/RatesTableItem.js.map +1 -1
- package/mobile/lib/hooks/useRates.d.ts +11 -2
- package/mobile/lib/hooks/useRates.js +28 -20
- package/mobile/lib/hooks/useRates.js.map +1 -1
- package/mobile/lib/retail/components/Fields/DeliveryDateField.js +1 -5
- package/mobile/lib/retail/components/Fields/DeliveryDateField.js.map +1 -1
- package/mobile/lib/retail/components/Fields/DeliveryTimeField.js +1 -0
- package/mobile/lib/retail/components/Fields/DeliveryTimeField.js.map +1 -1
- package/mobile/src/components/CreditCardForm/getDeliveryCreditCardData.ts +6 -0
- package/mobile/src/components/CreditCardForm/useCreditCardFormAPI.tsx +2 -1
- package/mobile/src/components/RatesTable/RatesTable.example.json +5 -3
- package/mobile/src/components/RatesTable/RatesTable.tsx +71 -16
- package/mobile/src/components/RatesTable/RatesTableContent.ts +14 -3
- package/mobile/src/components/RatesTable/RatesTableItem.tsx +2 -1
- package/mobile/src/hooks/useRates.ts +46 -23
- package/mobile/src/retail/components/Fields/DeliveryDateField.tsx +2 -6
- package/mobile/src/retail/components/Fields/DeliveryTimeField.tsx +1 -0
- package/package.json +1 -1
- package/src/components/CreditCardForm/getDeliveryCreditCardData.ts +6 -0
- package/src/components/CreditCardForm/useCreditCardFormAPI.tsx +2 -1
- package/src/components/RatesTable/RatesTable.example.json +5 -3
- package/src/components/RatesTable/RatesTable.fixture.mobile.tsx +10 -5
- package/src/components/RatesTable/RatesTable.fixture.tsx +10 -5
- package/src/components/RatesTable/RatesTable.tsx +71 -16
- package/src/components/RatesTable/RatesTableContent.ts +14 -3
- package/src/components/RatesTable/RatesTableItem.tsx +2 -1
- package/src/hooks/useRates.ts +46 -23
- package/src/retail/components/Fields/DeliveryDateField.tsx +2 -6
- package/src/retail/components/Fields/DeliveryTimeField.tsx +1 -0
package/lib/hooks/useRates.js
CHANGED
|
@@ -2,38 +2,46 @@ import { useAsyncData } from '@redneckz/uni-jsx/lib/hooks/useAsyncData';
|
|
|
2
2
|
import { useLocalStore } from '@redneckz/uni-jsx/lib/Store/useLocalStore';
|
|
3
3
|
import { API_BASE_URI } from '../api/apiBaseUrl.js';
|
|
4
4
|
import { fetchJSONUnsafe } from '../utils/fetchJSON.js';
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const
|
|
5
|
+
const EMPTY_RATES = [];
|
|
6
|
+
const RATES_URL = {
|
|
7
|
+
natural: `${API_BASE_URI}/rates`,
|
|
8
|
+
cards: `${API_BASE_URI}/ratescards`,
|
|
9
|
+
//archive: `${API_BASE_URI}/historyrates`,
|
|
10
|
+
};
|
|
11
|
+
const RATES_KEY = {
|
|
12
|
+
natural: 'rates',
|
|
13
|
+
cards: 'ratescards',
|
|
14
|
+
//archive: 'historyrates',
|
|
15
|
+
};
|
|
16
|
+
// TODO: для архива прокинуть date
|
|
17
|
+
export function useRates({ ratesType = 'natural', fetchArchive = true }) {
|
|
18
|
+
//const url = ratesType === 'archive' ? getArchiveRatesURL(date) : RATES_URL[ratesType];
|
|
19
|
+
const url = RATES_URL[ratesType];
|
|
20
|
+
const rateKey = RATES_KEY[ratesType];
|
|
19
21
|
const ratesStore = useLocalStore();
|
|
20
22
|
// проверяем, надо ли обновлять значения ставок
|
|
21
|
-
const shouldUpdate = getShouldUpdate(
|
|
23
|
+
const shouldUpdate = getShouldUpdate(rateKey, ratesStore, fetchArchive);
|
|
22
24
|
// костыль, не отправлять запрос на бэк, если уже был запрос менее 15 мин назад
|
|
23
25
|
const { data } = useAsyncData(shouldUpdate ? url : '', fetchJSONUnsafe);
|
|
24
26
|
// если есть data и значение надо обновить, то обновляем локалсторадж
|
|
25
27
|
if (shouldUpdate && data) {
|
|
26
28
|
const nextUpdate = getTimeAfter15Minutes();
|
|
27
|
-
ratesStore[rateKey] = { rate: data, nextUpdate };
|
|
29
|
+
ratesStore[rateKey] = { rate: data ?? [], nextUpdate };
|
|
28
30
|
}
|
|
29
31
|
// берем данные из локалсторадж
|
|
30
32
|
const rates = ratesStore[rateKey]?.rate;
|
|
33
|
+
const isLoad = Array.isArray(rates);
|
|
31
34
|
// возвращаем данные из локалсторадж или заглушку
|
|
32
|
-
return
|
|
35
|
+
return { ratesList: rates ?? EMPTY_RATES, isLoad };
|
|
33
36
|
}
|
|
34
37
|
// Отсчитываем 15 минут с текущего момента
|
|
35
38
|
const getTimeAfter15Minutes = () => Date.now() + 15 * 60 * 1000;
|
|
36
|
-
const getShouldUpdate = (
|
|
37
|
-
? !ratesStore?.
|
|
38
|
-
: !ratesStore?.
|
|
39
|
+
const getShouldUpdate = (rateKey, ratesStore, fetchArchive) => rateKey === 'archive'
|
|
40
|
+
? (!ratesStore?.[rateKey] || ratesStore?.[rateKey].nextUpdate <= Date.now()) && fetchArchive
|
|
41
|
+
: !ratesStore?.[rateKey] || ratesStore?.[rateKey].nextUpdate <= Date.now();
|
|
42
|
+
/*const getArchiveRatesURL = (date?: Date) => {
|
|
43
|
+
const formattedDate = date && formatDate(date, true);
|
|
44
|
+
|
|
45
|
+
return formattedDate ? `${RATES_URL['archive']}?date=${formattedDate}` : RATES_URL['archive'];
|
|
46
|
+
};*/
|
|
39
47
|
//# sourceMappingURL=useRates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRates.js","sourceRoot":"","sources":["../../src/hooks/useRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"useRates.js","sourceRoot":"","sources":["../../src/hooks/useRates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,eAAe,EAA4B,MAAM,oBAAoB,CAAC;AAoB/E,MAAM,WAAW,GAAmB,EAAE,CAAC;AAEvC,MAAM,SAAS,GAA8B;IAC3C,OAAO,EAAE,GAAG,YAAY,QAAQ;IAChC,KAAK,EAAE,GAAG,YAAY,aAAa;IACnC,0CAA0C;CAC3C,CAAC;AAEF,MAAM,SAAS,GAA8B;IAC3C,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,YAAY;IACnB,0BAA0B;CAC3B,CAAC;AAEF,kCAAkC;AAClC,MAAM,UAAU,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,YAAY,GAAG,IAAI,EAAmB;IACtF,wFAAwF;IACxF,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAErC,MAAM,UAAU,GAAG,aAAa,EAAmB,CAAC;IAEpD,+CAA+C;IAC/C,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,EAAE,UAA6B,EAAE,YAAY,CAAC,CAAC;IAE3F,+EAA+E;IAC/E,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,CAC3B,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EACvB,eAAsD,CACvD,CAAC;IAEF,qEAAqE;IACrE,IAAI,YAAY,IAAI,IAAI,EAAE;QACxB,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAC3C,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC;KACxD;IAED,+BAA+B;IAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IAExC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpC,iDAAiD;IACjD,OAAO,EAAE,SAAS,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,EAAE,CAAC;AACrD,CAAC;AAED,0CAA0C;AAC1C,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhE,MAAM,eAAe,GAAG,CACtB,OAAe,EACf,UAAkC,EAClC,YAAqB,EACrB,EAAE,CACF,OAAO,KAAK,SAAS;IACnB,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,YAAY;IAC5F,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AAE/E;;;;IAII"}
|
|
@@ -3,12 +3,8 @@ import { JSX } from '@redneckz/uni-jsx';
|
|
|
3
3
|
import { useMemo } from '@redneckz/uni-jsx/lib/hooks';
|
|
4
4
|
import { DatePickerControl } from '../../../ui-kit/DatePicker/DatePickerControl.js';
|
|
5
5
|
import { useLeadFormData } from '../../hooks/useLeadFormData.js';
|
|
6
|
-
import { useRetailFormStore } from '../../hooks/useRetailFormStore.js';
|
|
7
6
|
const MIN_DATE = new Date(Date.now() + 1 * 24 * 60 * 60 * 1000);
|
|
8
7
|
export const DeliveryDateField = JSX(({ field, input }) => {
|
|
9
|
-
const { productType } = useRetailFormStore();
|
|
10
|
-
const isDebit = productType === 'debitCard';
|
|
11
|
-
const minDate = isDebit ? MIN_DATE : new Date();
|
|
12
8
|
const { data } = useLeadFormData('DAYS_DELIVERY_SETTINGS');
|
|
13
9
|
const weekends = useMemo(() => {
|
|
14
10
|
const weekendItem = data?.find((item) => item.key === 'WEEKEND');
|
|
@@ -17,6 +13,6 @@ export const DeliveryDateField = JSX(({ field, input }) => {
|
|
|
17
13
|
}
|
|
18
14
|
return [];
|
|
19
15
|
}, [data]);
|
|
20
|
-
return (_jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438", ...field(input?.name ?? ''), ...input, minDate:
|
|
16
|
+
return (_jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438", ...field(input?.name ?? ''), ...input, minDate: MIN_DATE, weekends: weekends }));
|
|
21
17
|
});
|
|
22
18
|
//# sourceMappingURL=DeliveryDateField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeliveryDateField.js","sourceRoot":"","sources":["../../../../src/retail/components/Fields/DeliveryDateField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"DeliveryDateField.js","sourceRoot":"","sources":["../../../../src/retail/components/Fields/DeliveryDateField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1E,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,wBAAwB,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAa,OAAO,CAAC,GAAG,EAAE;QACtC,MAAM,WAAW,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;QACjE,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE;YACpC,OAAO,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SACjD;QAED,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,CACL,KAAC,iBAAiB,IAChB,KAAK,EAAC,2EAAe,KACjB,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,KACxB,KAAK,EACT,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -14,6 +14,7 @@ export const DeliveryTimeField = JSX(({ field, input }) => {
|
|
|
14
14
|
const allowedTimes = isDebit ? debitDeliveryTime : creditDeliveryTime;
|
|
15
15
|
return (data || [])
|
|
16
16
|
.filter((item) => item.key && allowedTimes.includes(item.key))
|
|
17
|
+
.sort((a, b) => (a.displayOrder || 0) - (b.displayOrder || 0))
|
|
17
18
|
.map((item) => ({
|
|
18
19
|
id: item.key,
|
|
19
20
|
text: item.value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeliveryTimeField.js","sourceRoot":"","sources":["../../../../src/retail/components/Fields/DeliveryTimeField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAGtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1E,MAAM,EAAE,WAAW,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,WAAW,KAAK,WAAW,CAAC;IAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,uBAAuB,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAsB,OAAO,CAAC,GAAG,EAAE;QACnD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAEtE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;aAChB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC7D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACd,EAAE,EAAE,IAAI,CAAC,GAAa;YACtB,IAAI,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC,CAAC,CAAC;IACR,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpB,OAAO,CACL,KAAC,uBAAuB,IACtB,KAAK,EAAC,iFAAgB,EACtB,SAAS,EAAC,UAAU,EACpB,KAAK,EAAE,YAAY,KACf,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,GAC5B,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"DeliveryTimeField.js","sourceRoot":"","sources":["../../../../src/retail/components/Fields/DeliveryTimeField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAGtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1E,MAAM,EAAE,WAAW,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,WAAW,KAAK,WAAW,CAAC;IAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,uBAAuB,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAsB,OAAO,CAAC,GAAG,EAAE;QACnD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAEtE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;aAChB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC7D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;aAC7D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACd,EAAE,EAAE,IAAI,CAAC,GAAa;YACtB,IAAI,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC,CAAC,CAAC;IACR,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpB,OAAO,CACL,KAAC,uBAAuB,IACtB,KAAK,EAAC,iFAAgB,EACtB,SAAS,EAAC,UAAU,EACpB,KAAK,EAAE,YAAY,KACf,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,GAC5B,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -6251,9 +6251,6 @@
|
|
|
6251
6251
|
|
|
6252
6252
|
const MIN_DATE = new Date(Date.now() + 1 * 24 * 60 * 60 * 1000);
|
|
6253
6253
|
const DeliveryDateField = JSX(({ field, input }) => {
|
|
6254
|
-
const { productType } = useRetailFormStore();
|
|
6255
|
-
const isDebit = productType === 'debitCard';
|
|
6256
|
-
const minDate = isDebit ? MIN_DATE : new Date();
|
|
6257
6254
|
const { data } = useLeadFormData('DAYS_DELIVERY_SETTINGS');
|
|
6258
6255
|
const weekends = useMemo(() => {
|
|
6259
6256
|
const weekendItem = data?.find((item) => item.key === 'WEEKEND');
|
|
@@ -6262,7 +6259,7 @@
|
|
|
6262
6259
|
}
|
|
6263
6260
|
return [];
|
|
6264
6261
|
}, [data]);
|
|
6265
|
-
return (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438", ...field(input?.name ?? ''), ...input, minDate:
|
|
6262
|
+
return (jsx(DatePickerControl, { label: "\u0414\u0430\u0442\u0430 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438", ...field(input?.name ?? ''), ...input, minDate: MIN_DATE, weekends: weekends }));
|
|
6266
6263
|
});
|
|
6267
6264
|
|
|
6268
6265
|
const DeliveryTimeField = JSX(({ field, input }) => {
|
|
@@ -6275,6 +6272,7 @@
|
|
|
6275
6272
|
const allowedTimes = isDebit ? debitDeliveryTime : creditDeliveryTime;
|
|
6276
6273
|
return (data || [])
|
|
6277
6274
|
.filter((item) => item.key && allowedTimes.includes(item.key))
|
|
6275
|
+
.sort((a, b) => (a.displayOrder || 0) - (b.displayOrder || 0))
|
|
6278
6276
|
.map((item) => ({
|
|
6279
6277
|
id: item.key,
|
|
6280
6278
|
text: item.value,
|
|
@@ -10820,12 +10818,17 @@
|
|
|
10820
10818
|
|
|
10821
10819
|
const getDeliveryData$1 = (formData) => {
|
|
10822
10820
|
const { methodObtain, deliveryDate = '', deliveryTime } = formData;
|
|
10821
|
+
const isNewMicroservice = checkNewMicroservice();
|
|
10822
|
+
//TODO временный хардкод для тестирования, требуется чтобы отработал ЕФР
|
|
10823
|
+
const oficeId = isNewMicroservice ? { id: '92fc8b67-2648-43ad-a441-5ca827021186' } : { id: '3' };
|
|
10823
10824
|
const isCourierDelivery = methodObtain === 'courier';
|
|
10824
10825
|
const deliveryTimeCd = deliveryTime ? { deliveryTimeCd: { key: deliveryTime } } : {};
|
|
10825
10826
|
return isCourierDelivery
|
|
10826
10827
|
? {
|
|
10827
10828
|
courierDeliveryFlg: isCourierDelivery,
|
|
10828
10829
|
deliveryDate: dateToISO(deliveryDate.toString().replace(/(GMT)[+-]\d{4}/, 'GMT+0000')),
|
|
10830
|
+
//TODO временный хардкод для тестирования, не забыть удалить
|
|
10831
|
+
office: oficeId,
|
|
10829
10832
|
...deliveryTimeCd,
|
|
10830
10833
|
}
|
|
10831
10834
|
: {};
|
|
@@ -10921,7 +10924,8 @@
|
|
|
10921
10924
|
cardCategory: leadForm?.cardCategory?.text,
|
|
10922
10925
|
deliveryDate: leadForm?.deliveryDate,
|
|
10923
10926
|
};
|
|
10924
|
-
|
|
10927
|
+
const resetState = { ...initialState, methodObtain: undefined };
|
|
10928
|
+
retailFormStore.leadForm = resetState;
|
|
10925
10929
|
}
|
|
10926
10930
|
}, [isFinalStep, initialState]);
|
|
10927
10931
|
const handleSubmit = useCallback(async (formData) => {
|
|
@@ -13661,40 +13665,48 @@
|
|
|
13661
13665
|
return (jsx(BlockWrapper, { version: "transparent", className: style(className), defaultPadding: "p-0", ...rest, children: dataType === 'offices' ? jsx(OfficesMap, {}) : jsx(AtmsMap, { descriptionData: data }) }));
|
|
13662
13666
|
});
|
|
13663
13667
|
|
|
13664
|
-
const
|
|
13665
|
-
const
|
|
13666
|
-
|
|
13667
|
-
|
|
13668
|
-
|
|
13669
|
-
|
|
13670
|
-
|
|
13671
|
-
|
|
13672
|
-
|
|
13673
|
-
|
|
13674
|
-
|
|
13675
|
-
|
|
13676
|
-
|
|
13677
|
-
const
|
|
13668
|
+
const EMPTY_RATES = [];
|
|
13669
|
+
const RATES_URL = {
|
|
13670
|
+
natural: `${API_BASE_URI}/rates`,
|
|
13671
|
+
cards: `${API_BASE_URI}/ratescards`,
|
|
13672
|
+
//archive: `${API_BASE_URI}/historyrates`,
|
|
13673
|
+
};
|
|
13674
|
+
const RATES_KEY = {
|
|
13675
|
+
natural: 'rates',
|
|
13676
|
+
cards: 'ratescards',
|
|
13677
|
+
//archive: 'historyrates',
|
|
13678
|
+
};
|
|
13679
|
+
// TODO: для архива прокинуть date
|
|
13680
|
+
function useRates({ ratesType = 'natural', fetchArchive = true }) {
|
|
13681
|
+
//const url = ratesType === 'archive' ? getArchiveRatesURL(date) : RATES_URL[ratesType];
|
|
13682
|
+
const url = RATES_URL[ratesType];
|
|
13683
|
+
const rateKey = RATES_KEY[ratesType];
|
|
13678
13684
|
const ratesStore = useLocalStore();
|
|
13679
13685
|
// проверяем, надо ли обновлять значения ставок
|
|
13680
|
-
const shouldUpdate = getShouldUpdate(
|
|
13686
|
+
const shouldUpdate = getShouldUpdate(rateKey, ratesStore, fetchArchive);
|
|
13681
13687
|
// костыль, не отправлять запрос на бэк, если уже был запрос менее 15 мин назад
|
|
13682
13688
|
const { data } = useAsyncData(shouldUpdate ? url : '', fetchJSONUnsafe);
|
|
13683
13689
|
// если есть data и значение надо обновить, то обновляем локалсторадж
|
|
13684
13690
|
if (shouldUpdate && data) {
|
|
13685
13691
|
const nextUpdate = getTimeAfter15Minutes();
|
|
13686
|
-
ratesStore[rateKey] = { rate: data, nextUpdate };
|
|
13692
|
+
ratesStore[rateKey] = { rate: data ?? [], nextUpdate };
|
|
13687
13693
|
}
|
|
13688
13694
|
// берем данные из локалсторадж
|
|
13689
13695
|
const rates = ratesStore[rateKey]?.rate;
|
|
13696
|
+
const isLoad = Array.isArray(rates);
|
|
13690
13697
|
// возвращаем данные из локалсторадж или заглушку
|
|
13691
|
-
return
|
|
13698
|
+
return { ratesList: rates ?? EMPTY_RATES, isLoad };
|
|
13692
13699
|
}
|
|
13693
13700
|
// Отсчитываем 15 минут с текущего момента
|
|
13694
13701
|
const getTimeAfter15Minutes = () => Date.now() + 15 * 60 * 1000;
|
|
13695
|
-
const getShouldUpdate = (
|
|
13696
|
-
? !ratesStore?.
|
|
13697
|
-
: !ratesStore?.
|
|
13702
|
+
const getShouldUpdate = (rateKey, ratesStore, fetchArchive) => rateKey === 'archive'
|
|
13703
|
+
? (!ratesStore?.[rateKey] || ratesStore?.[rateKey].nextUpdate <= Date.now()) && fetchArchive
|
|
13704
|
+
: !ratesStore?.[rateKey] || ratesStore?.[rateKey].nextUpdate <= Date.now();
|
|
13705
|
+
/*const getArchiveRatesURL = (date?: Date) => {
|
|
13706
|
+
const formattedDate = date && formatDate(date, true);
|
|
13707
|
+
|
|
13708
|
+
return formattedDate ? `${RATES_URL['archive']}?date=${formattedDate}` : RATES_URL['archive'];
|
|
13709
|
+
};*/
|
|
13698
13710
|
|
|
13699
13711
|
const sum = (list = []) => list.reduce((a, b) => a + b, 0);
|
|
13700
13712
|
|
|
@@ -13769,15 +13781,29 @@
|
|
|
13769
13781
|
return (jsxs("div", { className: "space-y-xl mb-3xl", children: [maxDate && renderDate({ dateString: maxDate, isArchive }), jsxs("div", { className: style(RATES_COLUMN_STYLE), children: [jsx(Text, { font: "font-medium", children: "\u0412\u0430\u043B\u044E\u0442\u0430" }), jsx(Text, { font: "font-medium", children: "\u041F\u043E\u043A\u0443\u043F\u043A\u0430" }), jsx(Text, { font: "font-medium", children: "\u041F\u0440\u043E\u0434\u0430\u0436\u0430" })] }), list.length > 0 ? (list.map((rate, i) => jsx(Rate, { ...rate }, String(i)))) : (jsx(Paragraph, { children: "\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0434\u0430\u043D\u043D\u044B\u0445" })), jsx(Paragraph, { color: "text-secondary-text", children: infoMessage })] }));
|
|
13770
13782
|
});
|
|
13771
13783
|
|
|
13772
|
-
const renderDataPickForm = () => (jsxs("div", { className: "flex justify-start items-end space-x-xl", children: [jsx(DatePicker, { label: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0435\u043D\u044C", maxDate: new Date() }), jsx(SubmitButton$1, { className: "h-fit", children: "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C" })] }));
|
|
13773
|
-
|
|
13774
13784
|
const renderLink = (href) => (jsxs(Paragraph, { children: ["\u041F\u043E\u043B\u043D\u044B\u0439 \u0430\u0440\u0445\u0438\u0432 \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C ", jsx(Link, { href: href, children: "\u0437\u0434\u0435\u0441\u044C" })] }));
|
|
13775
13785
|
|
|
13776
|
-
const RatesTable = JSX(({ href, className = '', infoMessage,
|
|
13777
|
-
const
|
|
13778
|
-
const
|
|
13779
|
-
|
|
13786
|
+
const RatesTable = JSX(({ href, ratesType = 'natural', className = '', infoMessage, notFoundMessage, title, ...rest }) => {
|
|
13787
|
+
// const [date, setDate] = useState<Date>();
|
|
13788
|
+
const [fetchArchive, setFetchArchive] = useState(true);
|
|
13789
|
+
//const isArchive = ratesType === 'archive';
|
|
13790
|
+
const { ratesList, isLoad } = useRates({
|
|
13791
|
+
ratesType,
|
|
13792
|
+
fetchArchive,
|
|
13793
|
+
});
|
|
13794
|
+
useEffect(() => {
|
|
13795
|
+
setFetchArchive(false);
|
|
13796
|
+
}, []);
|
|
13797
|
+
const isRatesValid = ratesList?.length > 0;
|
|
13798
|
+
return (jsxs(BlockWrapper, { className: style('p-6xl space-y-xl', className), defaultPadding: "p-0", ...rest, children: [jsx(Heading, { className: "mb-xl", children: title }), isLoad ? (renderRatesContent({
|
|
13799
|
+
ratesList,
|
|
13800
|
+
isArchive: false,
|
|
13801
|
+
infoMessage,
|
|
13802
|
+
isRatesValid,
|
|
13803
|
+
notFoundMessage,
|
|
13804
|
+
})) : (jsx(Loader, { position: "static" })), href ? renderLink(href) : null] }));
|
|
13780
13805
|
});
|
|
13806
|
+
const renderRatesContent = ({ ratesList = [], isArchive = false, infoMessage, isRatesValid, notFoundMessage, }) => ratesList.length > 0 ? (ratesList.map((list, i) => (jsx(RatesTableItem, { list: list, isRatesValid: isRatesValid, isArchive: isArchive, infoMessage: infoMessage }, String(i))))) : (jsx(NotFound, { description: notFoundMessage }));
|
|
13781
13807
|
|
|
13782
13808
|
const inputs = [
|
|
13783
13809
|
{
|
|
@@ -14597,7 +14623,7 @@
|
|
|
14597
14623
|
slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
|
|
14598
14624
|
});
|
|
14599
14625
|
|
|
14600
|
-
const packageVersion = "0.14.
|
|
14626
|
+
const packageVersion = "0.14.1065";
|
|
14601
14627
|
|
|
14602
14628
|
exports.Blocks = Blocks;
|
|
14603
14629
|
exports.ContentPage = ContentPage;
|