@redneckz/wildless-cms-uni-blocks 0.14.954 → 0.14.956
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/bundle.umd.js +111 -22
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/Header/DropdownMenu.d.ts +2 -2
- package/bundle/components/Header/HeaderQuickActionsMenu.d.ts +1 -1
- package/bundle/retail/components/Fields/SelectField.d.ts +2 -0
- package/bundle/retail/model/LeadFormState.d.ts +1 -0
- package/bundle/retail/model/NameFieldDef.d.ts +1 -1
- package/dist/components/DebitForm/DebitFormStatusTracker.js +4 -5
- package/dist/components/DebitForm/DebitFormStatusTracker.js.map +1 -1
- package/dist/components/DebitForm/DebitFormStepsData.js +67 -1
- package/dist/components/DebitForm/DebitFormStepsData.js.map +1 -1
- package/dist/components/DebitForm/formStateMap.js +1 -0
- package/dist/components/DebitForm/formStateMap.js.map +1 -1
- package/dist/components/DebitForm/useDebitFormAPI.js +1 -1
- package/dist/components/DebitForm/useDebitFormAPI.js.map +1 -1
- package/dist/components/Header/DropdownMenu.d.ts +2 -2
- package/dist/components/Header/HeaderQuickActionsMenu.d.ts +1 -1
- package/dist/components/Header/HeaderQuickActionsMenu.js +7 -5
- package/dist/components/Header/HeaderQuickActionsMenu.js.map +1 -1
- package/dist/retail/components/Fields/CardCategoryField.js +6 -1
- package/dist/retail/components/Fields/CardCategoryField.js.map +1 -1
- package/dist/retail/components/Fields/DeliveryDateFiels.js +8 -1
- package/dist/retail/components/Fields/DeliveryDateFiels.js.map +1 -1
- package/dist/retail/components/Fields/DeliveryTimeField.js +13 -4
- package/dist/retail/components/Fields/DeliveryTimeField.js.map +1 -1
- package/dist/retail/components/Fields/RegionRetailField.js +3 -1
- package/dist/retail/components/Fields/RegionRetailField.js.map +1 -1
- package/dist/retail/components/Fields/SelectField.d.ts +2 -0
- package/dist/retail/components/Fields/SelectField.js +2 -2
- package/dist/retail/components/Fields/SelectField.js.map +1 -1
- package/dist/retail/model/LeadFormState.d.ts +1 -0
- package/dist/retail/model/NameFieldDef.d.ts +1 -1
- package/lib/components/DebitForm/DebitFormStatusTracker.js +4 -5
- package/lib/components/DebitForm/DebitFormStatusTracker.js.map +1 -1
- package/lib/components/DebitForm/DebitFormStepsData.js +67 -1
- package/lib/components/DebitForm/DebitFormStepsData.js.map +1 -1
- package/lib/components/DebitForm/formStateMap.js +1 -0
- package/lib/components/DebitForm/formStateMap.js.map +1 -1
- package/lib/components/DebitForm/useDebitFormAPI.js +1 -1
- package/lib/components/DebitForm/useDebitFormAPI.js.map +1 -1
- package/lib/components/Header/DropdownMenu.d.ts +2 -2
- package/lib/components/Header/HeaderQuickActionsMenu.d.ts +1 -1
- package/lib/components/Header/HeaderQuickActionsMenu.js +7 -5
- package/lib/components/Header/HeaderQuickActionsMenu.js.map +1 -1
- package/lib/retail/components/Fields/CardCategoryField.js +6 -1
- package/lib/retail/components/Fields/CardCategoryField.js.map +1 -1
- package/lib/retail/components/Fields/DeliveryDateFiels.js +8 -1
- package/lib/retail/components/Fields/DeliveryDateFiels.js.map +1 -1
- package/lib/retail/components/Fields/DeliveryTimeField.js +13 -4
- package/lib/retail/components/Fields/DeliveryTimeField.js.map +1 -1
- package/lib/retail/components/Fields/RegionRetailField.js +3 -1
- package/lib/retail/components/Fields/RegionRetailField.js.map +1 -1
- package/lib/retail/components/Fields/SelectField.d.ts +2 -0
- package/lib/retail/components/Fields/SelectField.js +2 -2
- package/lib/retail/components/Fields/SelectField.js.map +1 -1
- package/lib/retail/model/LeadFormState.d.ts +1 -0
- package/lib/retail/model/NameFieldDef.d.ts +1 -1
- package/mobile/bundle/bundle.umd.js +111 -22
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/Header/DropdownMenu.d.ts +2 -2
- package/mobile/bundle/components/Header/HeaderQuickActionsMenu.d.ts +1 -1
- package/mobile/bundle/retail/components/Fields/SelectField.d.ts +2 -0
- package/mobile/bundle/retail/model/LeadFormState.d.ts +1 -0
- package/mobile/bundle/retail/model/NameFieldDef.d.ts +1 -1
- package/mobile/dist/components/DebitForm/DebitFormStatusTracker.js +4 -5
- package/mobile/dist/components/DebitForm/DebitFormStatusTracker.js.map +1 -1
- package/mobile/dist/components/DebitForm/DebitFormStepsData.js +67 -1
- package/mobile/dist/components/DebitForm/DebitFormStepsData.js.map +1 -1
- package/mobile/dist/components/DebitForm/formStateMap.js +1 -0
- package/mobile/dist/components/DebitForm/formStateMap.js.map +1 -1
- package/mobile/dist/components/DebitForm/useDebitFormAPI.js +1 -1
- package/mobile/dist/components/DebitForm/useDebitFormAPI.js.map +1 -1
- package/mobile/dist/components/Header/DropdownMenu.d.ts +2 -2
- package/mobile/dist/components/Header/HeaderQuickActionsMenu.d.ts +1 -1
- package/mobile/dist/components/Header/HeaderQuickActionsMenu.js +7 -5
- package/mobile/dist/components/Header/HeaderQuickActionsMenu.js.map +1 -1
- package/mobile/dist/retail/components/Fields/CardCategoryField.js +6 -1
- package/mobile/dist/retail/components/Fields/CardCategoryField.js.map +1 -1
- package/mobile/dist/retail/components/Fields/DeliveryDateFiels.js +8 -1
- package/mobile/dist/retail/components/Fields/DeliveryDateFiels.js.map +1 -1
- package/mobile/dist/retail/components/Fields/DeliveryTimeField.js +13 -4
- package/mobile/dist/retail/components/Fields/DeliveryTimeField.js.map +1 -1
- package/mobile/dist/retail/components/Fields/RegionRetailField.js +3 -1
- package/mobile/dist/retail/components/Fields/RegionRetailField.js.map +1 -1
- package/mobile/dist/retail/components/Fields/SelectField.d.ts +2 -0
- package/mobile/dist/retail/components/Fields/SelectField.js +2 -2
- package/mobile/dist/retail/components/Fields/SelectField.js.map +1 -1
- package/mobile/dist/retail/model/LeadFormState.d.ts +1 -0
- package/mobile/dist/retail/model/NameFieldDef.d.ts +1 -1
- package/mobile/lib/components/DebitForm/DebitFormStatusTracker.js +4 -5
- package/mobile/lib/components/DebitForm/DebitFormStatusTracker.js.map +1 -1
- package/mobile/lib/components/DebitForm/DebitFormStepsData.js +67 -1
- package/mobile/lib/components/DebitForm/DebitFormStepsData.js.map +1 -1
- package/mobile/lib/components/DebitForm/formStateMap.js +1 -0
- package/mobile/lib/components/DebitForm/formStateMap.js.map +1 -1
- package/mobile/lib/components/DebitForm/useDebitFormAPI.js +1 -1
- package/mobile/lib/components/DebitForm/useDebitFormAPI.js.map +1 -1
- package/mobile/lib/components/Header/DropdownMenu.d.ts +2 -2
- package/mobile/lib/components/Header/HeaderQuickActionsMenu.d.ts +1 -1
- package/mobile/lib/components/Header/HeaderQuickActionsMenu.js +7 -5
- package/mobile/lib/components/Header/HeaderQuickActionsMenu.js.map +1 -1
- package/mobile/lib/retail/components/Fields/CardCategoryField.js +6 -1
- package/mobile/lib/retail/components/Fields/CardCategoryField.js.map +1 -1
- package/mobile/lib/retail/components/Fields/DeliveryDateFiels.js +8 -1
- package/mobile/lib/retail/components/Fields/DeliveryDateFiels.js.map +1 -1
- package/mobile/lib/retail/components/Fields/DeliveryTimeField.js +13 -4
- package/mobile/lib/retail/components/Fields/DeliveryTimeField.js.map +1 -1
- package/mobile/lib/retail/components/Fields/RegionRetailField.js +3 -1
- package/mobile/lib/retail/components/Fields/RegionRetailField.js.map +1 -1
- package/mobile/lib/retail/components/Fields/SelectField.d.ts +2 -0
- package/mobile/lib/retail/components/Fields/SelectField.js +2 -2
- package/mobile/lib/retail/components/Fields/SelectField.js.map +1 -1
- package/mobile/lib/retail/model/LeadFormState.d.ts +1 -0
- package/mobile/lib/retail/model/NameFieldDef.d.ts +1 -1
- package/mobile/src/components/DebitForm/DebitFormStatusTracker.tsx +4 -6
- package/mobile/src/components/DebitForm/DebitFormStepsData.tsx +67 -1
- package/mobile/src/components/DebitForm/formStateMap.tsx +1 -0
- package/mobile/src/components/DebitForm/useDebitFormAPI.tsx +1 -1
- package/mobile/src/components/Header/DropdownMenu.tsx +2 -2
- package/mobile/src/components/Header/HeaderQuickActionsMenu.tsx +8 -6
- package/mobile/src/retail/components/Fields/CardCategoryField.tsx +7 -0
- package/mobile/src/retail/components/Fields/DeliveryDateFiels.tsx +12 -3
- package/mobile/src/retail/components/Fields/DeliveryTimeField.tsx +15 -4
- package/mobile/src/retail/components/Fields/RegionRetailField.tsx +3 -2
- package/mobile/src/retail/components/Fields/SelectField.tsx +3 -0
- package/mobile/src/retail/model/LeadFormState.ts +1 -0
- package/mobile/src/retail/model/NameFieldDef.ts +1 -0
- package/package.json +1 -1
- package/src/components/DebitForm/DebitFormStatusTracker.tsx +4 -6
- package/src/components/DebitForm/DebitFormStepsData.tsx +67 -1
- package/src/components/DebitForm/formStateMap.tsx +1 -0
- package/src/components/DebitForm/useDebitFormAPI.tsx +1 -1
- package/src/components/Header/DropdownMenu.tsx +2 -2
- package/src/components/Header/HeaderQuickActionsMenu.tsx +8 -6
- package/src/retail/components/Fields/CardCategoryField.tsx +7 -0
- package/src/retail/components/Fields/DeliveryDateFiels.tsx +12 -3
- package/src/retail/components/Fields/DeliveryTimeField.tsx +15 -4
- package/src/retail/components/Fields/RegionRetailField.tsx +3 -2
- package/src/retail/components/Fields/SelectField.tsx +3 -0
- package/src/retail/model/LeadFormState.ts +1 -0
- package/src/retail/model/NameFieldDef.ts +1 -0
|
@@ -83,15 +83,15 @@ const renderQuickActionsDropdown = ({
|
|
|
83
83
|
}: renderDropdownItemProps) => {
|
|
84
84
|
const quickActionsMapping = {
|
|
85
85
|
call: {
|
|
86
|
-
handler: () => {
|
|
87
|
-
handlers?.call();
|
|
86
|
+
handler: (ev: PreventableEventWithTarget) => {
|
|
87
|
+
handlers?.call(ev);
|
|
88
88
|
closeDropdown();
|
|
89
89
|
},
|
|
90
90
|
text: 'Заказать звонок',
|
|
91
91
|
},
|
|
92
92
|
chat: {
|
|
93
|
-
handler: () => {
|
|
94
|
-
handlers?.
|
|
93
|
+
handler: (ev: PreventableEventWithTarget) => {
|
|
94
|
+
handlers?.call(ev);
|
|
95
95
|
closeDropdown();
|
|
96
96
|
},
|
|
97
97
|
text: 'Написать в чат',
|
|
@@ -120,10 +120,12 @@ export const useHandlers = () => {
|
|
|
120
120
|
|
|
121
121
|
const aspects = useAspects();
|
|
122
122
|
|
|
123
|
-
const handleChatClick = useCallback((ev
|
|
123
|
+
const handleChatClick = useCallback((ev: PreventableEventWithTarget) => {
|
|
124
124
|
const openChatBot = aspects[CHAT_BOT_ASPECT_NAME];
|
|
125
125
|
if (openChatBot && ev) {
|
|
126
|
-
openChatBot
|
|
126
|
+
if (openChatBot) {
|
|
127
|
+
openChatBot(ev).finally();
|
|
128
|
+
}
|
|
127
129
|
}
|
|
128
130
|
}, []);
|
|
129
131
|
|
|
@@ -12,6 +12,7 @@ export const CardCategoryField = JSX<CustomFieldProps>(({ field, input }) => {
|
|
|
12
12
|
const [programId] = useLocalStorage<string>('programId');
|
|
13
13
|
const { value: selectedCardCategory, onChange: cardCategoryChange } = field('cardCategory');
|
|
14
14
|
const selectedPaymentSystem = field('paymentSystem')?.value?.key;
|
|
15
|
+
const handleChangeIsMomentDebitCard = field('isMomentDebitCard')?.onChange;
|
|
15
16
|
|
|
16
17
|
const getCardCategoryValue = useCallback(
|
|
17
18
|
(fetchedCardTypes: CardTypeData[]) =>
|
|
@@ -24,6 +25,11 @@ export const CardCategoryField = JSX<CustomFieldProps>(({ field, input }) => {
|
|
|
24
25
|
[],
|
|
25
26
|
);
|
|
26
27
|
|
|
28
|
+
const onChange = useCallback((value: Option) => {
|
|
29
|
+
cardCategoryChange?.(value);
|
|
30
|
+
handleChangeIsMomentDebitCard?.(value?.text?.toLowerCase()?.includes('момент'));
|
|
31
|
+
}, []);
|
|
32
|
+
|
|
27
33
|
useEffect(() => {
|
|
28
34
|
if (selectedPaymentSystem && programId) {
|
|
29
35
|
(async () => {
|
|
@@ -50,6 +56,7 @@ export const CardCategoryField = JSX<CustomFieldProps>(({ field, input }) => {
|
|
|
50
56
|
label="Категория карты"
|
|
51
57
|
fieldName="cardCategory"
|
|
52
58
|
input={input}
|
|
59
|
+
onChange={onChange}
|
|
53
60
|
/>
|
|
54
61
|
{description ? <InfoCard __html={description} /> : null}
|
|
55
62
|
</div>
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import { DatePickerControl } from '../../../ui-kit/DatePicker/DatePickerControl';
|
|
3
3
|
import { type CustomFieldProps } from '../../../ui-kit/FormField/CustomFieldProps';
|
|
4
|
+
import { useRetailFormStore } from '../../hooks/useRetailFormStore';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
)
|
|
6
|
+
const MIN_DATE = new Date(Date.now() + 1 * 24 * 60 * 60 * 1000);
|
|
7
|
+
|
|
8
|
+
export const DeliveryDateFiels = JSX<CustomFieldProps>(({ field, input }) => {
|
|
9
|
+
const { productType } = useRetailFormStore();
|
|
10
|
+
const isDebit = productType === 'debitCard';
|
|
11
|
+
const minDate = isDebit ? MIN_DATE : new Date();
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<DatePickerControl label="Дата доставки" {...field(input?.name ?? '')} minDate={minDate} />
|
|
15
|
+
);
|
|
16
|
+
});
|
|
@@ -4,15 +4,26 @@ import { type CustomFieldProps } from '../../../ui-kit/FormField/CustomFieldProp
|
|
|
4
4
|
import { type RadioButtonItem } from '../../../ui-kit/RadioButtonGroup/RadioButtonGroup';
|
|
5
5
|
import { RadioButtonGroupControl } from '../../../ui-kit/RadioButtonGroup/RadioButtonGroupControl';
|
|
6
6
|
import { useLeadFormData } from '../../hooks/useLeadFormData';
|
|
7
|
+
import { useRetailFormStore } from '../../hooks/useRetailFormStore';
|
|
7
8
|
|
|
8
9
|
export const DeliveryTimeField = JSX<CustomFieldProps>(({ field, input }) => {
|
|
10
|
+
const { productType } = useRetailFormStore();
|
|
11
|
+
const isDebit = productType === 'debitCard';
|
|
9
12
|
const { data } = useLeadFormData('COURIER_DELIVERY_TIME');
|
|
13
|
+
|
|
14
|
+
const deliveryTimeDebit = [
|
|
15
|
+
{ id: 'TIME_1', text: '10:00-14:00' },
|
|
16
|
+
{ id: 'TIME_2', text: '14:00-18:00' },
|
|
17
|
+
];
|
|
18
|
+
|
|
10
19
|
const deliveryTime: RadioButtonItem[] = useMemo(
|
|
11
20
|
() =>
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
21
|
+
isDebit
|
|
22
|
+
? deliveryTimeDebit
|
|
23
|
+
: data?.map((_) => ({
|
|
24
|
+
id: _.key as string,
|
|
25
|
+
text: _.value,
|
|
26
|
+
})) ?? [],
|
|
16
27
|
[data],
|
|
17
28
|
);
|
|
18
29
|
|
|
@@ -14,12 +14,12 @@ export const RegionRetailField = JSX<CustomFieldProps>(({ field, input }) => {
|
|
|
14
14
|
const { data: regions } = useLeadFormData('REGION_RF');
|
|
15
15
|
const { data: regionsDelivery } = useAsyncData('regionsDelivery', getRegionsCardDelivery);
|
|
16
16
|
const { data: productSettings } = useLeadFormData(getCurrentProductSettings(productType));
|
|
17
|
+
const isEsiaAuth = field('esiaAccountTypeCd')?.value?.key;
|
|
17
18
|
|
|
18
19
|
const isSalaryCard = programId === '38';
|
|
19
20
|
const formatRegions = regions?.map(({ key, value }) => ({ key, text: value }));
|
|
20
21
|
const isDeliveryActive =
|
|
21
22
|
productSettings?.find((_) => _?.key === 'DELIVERY_ACTIVE')?.value === 'true';
|
|
22
|
-
|
|
23
23
|
const handleChangeRegion = field('regionRetail')?.onChange;
|
|
24
24
|
const handleChangeRegionHasDelivery = field('regionHasDelivery')?.onChange;
|
|
25
25
|
const handleChangeMethodObtain = field('methodObtain')?.onChange;
|
|
@@ -29,7 +29,8 @@ export const RegionRetailField = JSX<CustomFieldProps>(({ field, input }) => {
|
|
|
29
29
|
const regionHasDelivery =
|
|
30
30
|
isDeliveryActive &&
|
|
31
31
|
regionsDelivery?.find((_) => _.regionCode === value.key)?.deliveryFlg &&
|
|
32
|
-
!isSalaryCard
|
|
32
|
+
!isSalaryCard &&
|
|
33
|
+
Boolean(isEsiaAuth);
|
|
33
34
|
handleChangeRegionHasDelivery?.(regionHasDelivery);
|
|
34
35
|
handleChangeMethodObtain?.(regionHasDelivery ? 'courier' : 'office');
|
|
35
36
|
handleChangeRegion?.(value);
|
|
@@ -18,6 +18,7 @@ export interface SelectFieldProps
|
|
|
18
18
|
fieldName: string;
|
|
19
19
|
isSearch?: boolean;
|
|
20
20
|
isManualInput?: boolean;
|
|
21
|
+
onChange?: (value: Option) => void;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
export const SelectField = UniBlock<SelectFieldProps>(
|
|
@@ -28,6 +29,7 @@ export const SelectField = UniBlock<SelectFieldProps>(
|
|
|
28
29
|
placeholder = 'Выберите из списка',
|
|
29
30
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
30
31
|
options,
|
|
32
|
+
onChange,
|
|
31
33
|
...rest
|
|
32
34
|
}) => {
|
|
33
35
|
const leadOptions: Option[] =
|
|
@@ -42,6 +44,7 @@ export const SelectField = UniBlock<SelectFieldProps>(
|
|
|
42
44
|
options={leadOptions}
|
|
43
45
|
{...field(fieldName)}
|
|
44
46
|
{...rest}
|
|
47
|
+
onChange={onChange ?? field(fieldName)?.onChange}
|
|
45
48
|
/>
|
|
46
49
|
);
|
|
47
50
|
},
|
package/package.json
CHANGED
|
@@ -13,7 +13,6 @@ import { SuccessStatusContent } from './SuccessStatusContent';
|
|
|
13
13
|
export const DebitFormStatusTracker = JSX(() => {
|
|
14
14
|
const [status, setStatus] = useState(STATUS_TYPE.process);
|
|
15
15
|
const { taskId, statusInfo, programId } = useRetailFormStore();
|
|
16
|
-
|
|
17
16
|
const isSalaryCard = programId === '38';
|
|
18
17
|
const isOffice = statusInfo?.methodObtain === 'office';
|
|
19
18
|
|
|
@@ -23,11 +22,10 @@ export const DebitFormStatusTracker = JSX(() => {
|
|
|
23
22
|
signalType: 'FIND_PERSON_SIGNAL',
|
|
24
23
|
taskId,
|
|
25
24
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}));
|
|
25
|
+
await sendSignalToProcess({
|
|
26
|
+
signalType: 'SET_PERSON_SIGNAL',
|
|
27
|
+
taskId,
|
|
28
|
+
});
|
|
31
29
|
|
|
32
30
|
setStatus(statusCd || STATUS_TYPE.notFound);
|
|
33
31
|
})();
|
|
@@ -67,6 +67,30 @@ export const DELIVERY_DEBIT_CARD_CONTENT: SectionsRetailProps[] = [
|
|
|
67
67
|
},
|
|
68
68
|
],
|
|
69
69
|
},
|
|
70
|
+
{
|
|
71
|
+
inputs: [
|
|
72
|
+
{
|
|
73
|
+
name: 'deliveryDate',
|
|
74
|
+
condition: {
|
|
75
|
+
name: 'methodObtain',
|
|
76
|
+
values: ['courier'],
|
|
77
|
+
},
|
|
78
|
+
required: true,
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
inputs: [
|
|
84
|
+
{
|
|
85
|
+
name: 'deliveryTime',
|
|
86
|
+
condition: {
|
|
87
|
+
name: 'methodObtain',
|
|
88
|
+
values: ['courier'],
|
|
89
|
+
},
|
|
90
|
+
required: true,
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
},
|
|
70
94
|
{
|
|
71
95
|
inputs: [
|
|
72
96
|
{
|
|
@@ -143,6 +167,20 @@ const DEBIT_PERSONAL_INFO_CONTENT: SectionsRetailProps[] = [
|
|
|
143
167
|
},
|
|
144
168
|
],
|
|
145
169
|
},
|
|
170
|
+
{
|
|
171
|
+
inputs: [
|
|
172
|
+
{
|
|
173
|
+
name: 'infoCard',
|
|
174
|
+
condition: {
|
|
175
|
+
name: 'methodObtain',
|
|
176
|
+
values: ['courier'],
|
|
177
|
+
},
|
|
178
|
+
label:
|
|
179
|
+
// eslint-disable-next-line max-len
|
|
180
|
+
'Проверьте полученные данные с портала Государственных услуг. При наличии ошибки, закройте заявку и оформите заявку заново без авторизации через портал Государственных услуг.',
|
|
181
|
+
},
|
|
182
|
+
],
|
|
183
|
+
},
|
|
146
184
|
];
|
|
147
185
|
const DEBIT_CARD_CONTENT: SectionsRetailProps[] = [
|
|
148
186
|
{
|
|
@@ -159,16 +197,40 @@ const DEBIT_CARD_CONTENT: SectionsRetailProps[] = [
|
|
|
159
197
|
{
|
|
160
198
|
title: 'Отображение на карте',
|
|
161
199
|
inputs: [],
|
|
200
|
+
condition: {
|
|
201
|
+
name: 'isMomentDebitCard',
|
|
202
|
+
values: [false],
|
|
203
|
+
},
|
|
162
204
|
},
|
|
163
205
|
{
|
|
164
206
|
columns: 2,
|
|
165
|
-
inputs: [
|
|
207
|
+
inputs: [
|
|
208
|
+
{
|
|
209
|
+
name: 'latinName',
|
|
210
|
+
condition: {
|
|
211
|
+
name: 'isMomentDebitCard',
|
|
212
|
+
values: [false],
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
name: 'latinSurname',
|
|
217
|
+
required: true,
|
|
218
|
+
condition: {
|
|
219
|
+
name: 'isMomentDebitCard',
|
|
220
|
+
values: [false],
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
],
|
|
166
224
|
},
|
|
167
225
|
{
|
|
168
226
|
inputs: [
|
|
169
227
|
{
|
|
170
228
|
name: 'infoCard',
|
|
171
229
|
label: 'Проверьте корректность заполненных полей, при необходимости внесите изменения.',
|
|
230
|
+
condition: {
|
|
231
|
+
name: 'isMomentDebitCard',
|
|
232
|
+
values: [false],
|
|
233
|
+
},
|
|
172
234
|
},
|
|
173
235
|
],
|
|
174
236
|
},
|
|
@@ -182,6 +244,10 @@ const DEBIT_CARD_CONTENT: SectionsRetailProps[] = [
|
|
|
182
244
|
label:
|
|
183
245
|
// eslint-disable-next-line max-len
|
|
184
246
|
'Количество символов ограничивается 20. При этом, если фамилия и имя на карте содержит более 21 символа, то необходимо сократить имя и указывать на карте только первую букву имени и фамилию, если при таком сокращении фамилия и имя не умещается в количество символов – 20, то указывать только фамилию.',
|
|
247
|
+
condition: {
|
|
248
|
+
name: 'isMomentDebitCard',
|
|
249
|
+
values: [false],
|
|
250
|
+
},
|
|
185
251
|
},
|
|
186
252
|
],
|
|
187
253
|
},
|
|
@@ -13,7 +13,7 @@ export interface DropdownMenuProps extends ComponentType {
|
|
|
13
13
|
activeItem?: LinkProps;
|
|
14
14
|
ariaLabel?: string;
|
|
15
15
|
renderDropdownItem?: ({ item, i, activeItem, handlers }: renderDropdownItemProps) => void;
|
|
16
|
-
handlers?: Record<string, (ev
|
|
16
|
+
handlers?: Record<string, (ev: PreventableEventWithTarget) => void>;
|
|
17
17
|
onItemClick?: () => void;
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -21,7 +21,7 @@ export type renderDropdownItemProps = {
|
|
|
21
21
|
item?: LinkProps;
|
|
22
22
|
i?: number;
|
|
23
23
|
activeItem?: LinkProps;
|
|
24
|
-
handlers?: Record<string, (ev
|
|
24
|
+
handlers?: Record<string, (ev: PreventableEventWithTarget) => void>;
|
|
25
25
|
closeDropdown?: () => void;
|
|
26
26
|
};
|
|
27
27
|
|
|
@@ -83,15 +83,15 @@ const renderQuickActionsDropdown = ({
|
|
|
83
83
|
}: renderDropdownItemProps) => {
|
|
84
84
|
const quickActionsMapping = {
|
|
85
85
|
call: {
|
|
86
|
-
handler: () => {
|
|
87
|
-
handlers?.call();
|
|
86
|
+
handler: (ev: PreventableEventWithTarget) => {
|
|
87
|
+
handlers?.call(ev);
|
|
88
88
|
closeDropdown();
|
|
89
89
|
},
|
|
90
90
|
text: 'Заказать звонок',
|
|
91
91
|
},
|
|
92
92
|
chat: {
|
|
93
|
-
handler: () => {
|
|
94
|
-
handlers?.
|
|
93
|
+
handler: (ev: PreventableEventWithTarget) => {
|
|
94
|
+
handlers?.call(ev);
|
|
95
95
|
closeDropdown();
|
|
96
96
|
},
|
|
97
97
|
text: 'Написать в чат',
|
|
@@ -120,10 +120,12 @@ export const useHandlers = () => {
|
|
|
120
120
|
|
|
121
121
|
const aspects = useAspects();
|
|
122
122
|
|
|
123
|
-
const handleChatClick = useCallback((ev
|
|
123
|
+
const handleChatClick = useCallback((ev: PreventableEventWithTarget) => {
|
|
124
124
|
const openChatBot = aspects[CHAT_BOT_ASPECT_NAME];
|
|
125
125
|
if (openChatBot && ev) {
|
|
126
|
-
openChatBot
|
|
126
|
+
if (openChatBot) {
|
|
127
|
+
openChatBot(ev).finally();
|
|
128
|
+
}
|
|
127
129
|
}
|
|
128
130
|
}, []);
|
|
129
131
|
|
|
@@ -12,6 +12,7 @@ export const CardCategoryField = JSX<CustomFieldProps>(({ field, input }) => {
|
|
|
12
12
|
const [programId] = useLocalStorage<string>('programId');
|
|
13
13
|
const { value: selectedCardCategory, onChange: cardCategoryChange } = field('cardCategory');
|
|
14
14
|
const selectedPaymentSystem = field('paymentSystem')?.value?.key;
|
|
15
|
+
const handleChangeIsMomentDebitCard = field('isMomentDebitCard')?.onChange;
|
|
15
16
|
|
|
16
17
|
const getCardCategoryValue = useCallback(
|
|
17
18
|
(fetchedCardTypes: CardTypeData[]) =>
|
|
@@ -24,6 +25,11 @@ export const CardCategoryField = JSX<CustomFieldProps>(({ field, input }) => {
|
|
|
24
25
|
[],
|
|
25
26
|
);
|
|
26
27
|
|
|
28
|
+
const onChange = useCallback((value: Option) => {
|
|
29
|
+
cardCategoryChange?.(value);
|
|
30
|
+
handleChangeIsMomentDebitCard?.(value?.text?.toLowerCase()?.includes('момент'));
|
|
31
|
+
}, []);
|
|
32
|
+
|
|
27
33
|
useEffect(() => {
|
|
28
34
|
if (selectedPaymentSystem && programId) {
|
|
29
35
|
(async () => {
|
|
@@ -50,6 +56,7 @@ export const CardCategoryField = JSX<CustomFieldProps>(({ field, input }) => {
|
|
|
50
56
|
label="Категория карты"
|
|
51
57
|
fieldName="cardCategory"
|
|
52
58
|
input={input}
|
|
59
|
+
onChange={onChange}
|
|
53
60
|
/>
|
|
54
61
|
{description ? <InfoCard __html={description} /> : null}
|
|
55
62
|
</div>
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
2
|
import { DatePickerControl } from '../../../ui-kit/DatePicker/DatePickerControl';
|
|
3
3
|
import { type CustomFieldProps } from '../../../ui-kit/FormField/CustomFieldProps';
|
|
4
|
+
import { useRetailFormStore } from '../../hooks/useRetailFormStore';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
)
|
|
6
|
+
const MIN_DATE = new Date(Date.now() + 1 * 24 * 60 * 60 * 1000);
|
|
7
|
+
|
|
8
|
+
export const DeliveryDateFiels = JSX<CustomFieldProps>(({ field, input }) => {
|
|
9
|
+
const { productType } = useRetailFormStore();
|
|
10
|
+
const isDebit = productType === 'debitCard';
|
|
11
|
+
const minDate = isDebit ? MIN_DATE : new Date();
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<DatePickerControl label="Дата доставки" {...field(input?.name ?? '')} minDate={minDate} />
|
|
15
|
+
);
|
|
16
|
+
});
|
|
@@ -4,15 +4,26 @@ import { type CustomFieldProps } from '../../../ui-kit/FormField/CustomFieldProp
|
|
|
4
4
|
import { type RadioButtonItem } from '../../../ui-kit/RadioButtonGroup/RadioButtonGroup';
|
|
5
5
|
import { RadioButtonGroupControl } from '../../../ui-kit/RadioButtonGroup/RadioButtonGroupControl';
|
|
6
6
|
import { useLeadFormData } from '../../hooks/useLeadFormData';
|
|
7
|
+
import { useRetailFormStore } from '../../hooks/useRetailFormStore';
|
|
7
8
|
|
|
8
9
|
export const DeliveryTimeField = JSX<CustomFieldProps>(({ field, input }) => {
|
|
10
|
+
const { productType } = useRetailFormStore();
|
|
11
|
+
const isDebit = productType === 'debitCard';
|
|
9
12
|
const { data } = useLeadFormData('COURIER_DELIVERY_TIME');
|
|
13
|
+
|
|
14
|
+
const deliveryTimeDebit = [
|
|
15
|
+
{ id: 'TIME_1', text: '10:00-14:00' },
|
|
16
|
+
{ id: 'TIME_2', text: '14:00-18:00' },
|
|
17
|
+
];
|
|
18
|
+
|
|
10
19
|
const deliveryTime: RadioButtonItem[] = useMemo(
|
|
11
20
|
() =>
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
21
|
+
isDebit
|
|
22
|
+
? deliveryTimeDebit
|
|
23
|
+
: data?.map((_) => ({
|
|
24
|
+
id: _.key as string,
|
|
25
|
+
text: _.value,
|
|
26
|
+
})) ?? [],
|
|
16
27
|
[data],
|
|
17
28
|
);
|
|
18
29
|
|
|
@@ -14,12 +14,12 @@ export const RegionRetailField = JSX<CustomFieldProps>(({ field, input }) => {
|
|
|
14
14
|
const { data: regions } = useLeadFormData('REGION_RF');
|
|
15
15
|
const { data: regionsDelivery } = useAsyncData('regionsDelivery', getRegionsCardDelivery);
|
|
16
16
|
const { data: productSettings } = useLeadFormData(getCurrentProductSettings(productType));
|
|
17
|
+
const isEsiaAuth = field('esiaAccountTypeCd')?.value?.key;
|
|
17
18
|
|
|
18
19
|
const isSalaryCard = programId === '38';
|
|
19
20
|
const formatRegions = regions?.map(({ key, value }) => ({ key, text: value }));
|
|
20
21
|
const isDeliveryActive =
|
|
21
22
|
productSettings?.find((_) => _?.key === 'DELIVERY_ACTIVE')?.value === 'true';
|
|
22
|
-
|
|
23
23
|
const handleChangeRegion = field('regionRetail')?.onChange;
|
|
24
24
|
const handleChangeRegionHasDelivery = field('regionHasDelivery')?.onChange;
|
|
25
25
|
const handleChangeMethodObtain = field('methodObtain')?.onChange;
|
|
@@ -29,7 +29,8 @@ export const RegionRetailField = JSX<CustomFieldProps>(({ field, input }) => {
|
|
|
29
29
|
const regionHasDelivery =
|
|
30
30
|
isDeliveryActive &&
|
|
31
31
|
regionsDelivery?.find((_) => _.regionCode === value.key)?.deliveryFlg &&
|
|
32
|
-
!isSalaryCard
|
|
32
|
+
!isSalaryCard &&
|
|
33
|
+
Boolean(isEsiaAuth);
|
|
33
34
|
handleChangeRegionHasDelivery?.(regionHasDelivery);
|
|
34
35
|
handleChangeMethodObtain?.(regionHasDelivery ? 'courier' : 'office');
|
|
35
36
|
handleChangeRegion?.(value);
|
|
@@ -18,6 +18,7 @@ export interface SelectFieldProps
|
|
|
18
18
|
fieldName: string;
|
|
19
19
|
isSearch?: boolean;
|
|
20
20
|
isManualInput?: boolean;
|
|
21
|
+
onChange?: (value: Option) => void;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
export const SelectField = UniBlock<SelectFieldProps>(
|
|
@@ -28,6 +29,7 @@ export const SelectField = UniBlock<SelectFieldProps>(
|
|
|
28
29
|
placeholder = 'Выберите из списка',
|
|
29
30
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
30
31
|
options,
|
|
32
|
+
onChange,
|
|
31
33
|
...rest
|
|
32
34
|
}) => {
|
|
33
35
|
const leadOptions: Option[] =
|
|
@@ -42,6 +44,7 @@ export const SelectField = UniBlock<SelectFieldProps>(
|
|
|
42
44
|
options={leadOptions}
|
|
43
45
|
{...field(fieldName)}
|
|
44
46
|
{...rest}
|
|
47
|
+
onChange={onChange ?? field(fieldName)?.onChange}
|
|
45
48
|
/>
|
|
46
49
|
);
|
|
47
50
|
},
|