@redneckz/wildless-cms-uni-blocks 0.14.884 → 0.14.885
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 +212 -56
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/ApplicationLeadForm/EsiaLoginBanner.d.ts +2 -1
- package/bundle/components/DebitForm/DebitFormStepsData.d.ts +1 -0
- package/bundle/components/DebitForm/utils.d.ts +2 -0
- package/bundle/retail/components/DraftDialog/EmptyDraftDialog.d.ts +4 -1
- package/bundle/retail/components/DraftDialog/creditProgramCodes.d.ts +39 -0
- package/bundle/retail/components/DraftDialog/utils.d.ts +5 -34
- package/bundle/retail/model/LeadFormState.d.ts +0 -1
- package/dist/components/ApplicationLeadForm/ApplicationLeadForm.js +1 -1
- package/dist/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
- package/dist/components/ApplicationLeadForm/EsiaLoginBanner.d.ts +2 -1
- package/dist/components/ApplicationLeadForm/EsiaLoginBanner.js +2 -2
- package/dist/components/ApplicationLeadForm/EsiaLoginBanner.js.map +1 -1
- package/dist/components/ApplicationLeadForm/consents.js +0 -4
- package/dist/components/ApplicationLeadForm/consents.js.map +1 -1
- package/dist/components/DebitForm/DebitForm.js +5 -1
- package/dist/components/DebitForm/DebitForm.js.map +1 -1
- package/dist/components/DebitForm/DebitFormStepsData.d.ts +1 -0
- package/dist/components/DebitForm/DebitFormStepsData.js +122 -6
- 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/utils.d.ts +2 -0
- package/dist/components/DebitForm/utils.js +2 -0
- package/dist/components/DebitForm/utils.js.map +1 -1
- package/dist/retail/adaptors/getPersonalInfoData.js +4 -1
- package/dist/retail/adaptors/getPersonalInfoData.js.map +1 -1
- package/dist/retail/components/DraftDialog/DraftDialog.js +7 -14
- package/dist/retail/components/DraftDialog/DraftDialog.js.map +1 -1
- package/dist/retail/components/DraftDialog/EmptyDraftDialog.d.ts +4 -1
- package/dist/retail/components/DraftDialog/EmptyDraftDialog.js +4 -2
- package/dist/retail/components/DraftDialog/EmptyDraftDialog.js.map +1 -1
- package/dist/retail/components/DraftDialog/creditProgramCodes.d.ts +39 -0
- package/dist/retail/components/DraftDialog/creditProgramCodes.js +39 -0
- package/dist/retail/components/DraftDialog/creditProgramCodes.js.map +1 -0
- package/dist/retail/components/DraftDialog/useDraftDialog.js +1 -1
- package/dist/retail/components/DraftDialog/useDraftDialog.js.map +1 -1
- package/dist/retail/components/DraftDialog/utils.d.ts +5 -34
- package/dist/retail/components/DraftDialog/utils.js +23 -24
- package/dist/retail/components/DraftDialog/utils.js.map +1 -1
- package/dist/retail/components/Fields/CardCategoryField.js +8 -2
- package/dist/retail/components/Fields/CardCategoryField.js.map +1 -1
- package/dist/retail/model/LeadFormState.d.ts +0 -1
- package/dist/ui-kit/FormField/getObjectValidator.js +1 -1
- package/lib/common.css +1 -1
- package/lib/components/ApplicationLeadForm/ApplicationLeadForm.js +1 -1
- package/lib/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
- package/lib/components/ApplicationLeadForm/EsiaLoginBanner.d.ts +2 -1
- package/lib/components/ApplicationLeadForm/EsiaLoginBanner.js +2 -2
- package/lib/components/ApplicationLeadForm/EsiaLoginBanner.js.map +1 -1
- package/lib/components/ApplicationLeadForm/consents.js +0 -4
- package/lib/components/ApplicationLeadForm/consents.js.map +1 -1
- package/lib/components/DebitForm/DebitForm.js +5 -1
- package/lib/components/DebitForm/DebitForm.js.map +1 -1
- package/lib/components/DebitForm/DebitFormStepsData.d.ts +1 -0
- package/lib/components/DebitForm/DebitFormStepsData.js +122 -6
- 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/utils.d.ts +2 -0
- package/lib/components/DebitForm/utils.js +2 -0
- package/lib/components/DebitForm/utils.js.map +1 -1
- package/lib/retail/adaptors/getPersonalInfoData.js +4 -1
- package/lib/retail/adaptors/getPersonalInfoData.js.map +1 -1
- package/lib/retail/components/DraftDialog/DraftDialog.js +6 -13
- package/lib/retail/components/DraftDialog/DraftDialog.js.map +1 -1
- package/lib/retail/components/DraftDialog/EmptyDraftDialog.d.ts +4 -1
- package/lib/retail/components/DraftDialog/EmptyDraftDialog.js +4 -2
- package/lib/retail/components/DraftDialog/EmptyDraftDialog.js.map +1 -1
- package/lib/retail/components/DraftDialog/creditProgramCodes.d.ts +39 -0
- package/lib/retail/components/DraftDialog/creditProgramCodes.js +37 -0
- package/lib/retail/components/DraftDialog/creditProgramCodes.js.map +1 -0
- package/lib/retail/components/DraftDialog/useDraftDialog.js +1 -1
- package/lib/retail/components/DraftDialog/useDraftDialog.js.map +1 -1
- package/lib/retail/components/DraftDialog/utils.d.ts +5 -34
- package/lib/retail/components/DraftDialog/utils.js +21 -23
- package/lib/retail/components/DraftDialog/utils.js.map +1 -1
- package/lib/retail/components/Fields/CardCategoryField.js +9 -3
- package/lib/retail/components/Fields/CardCategoryField.js.map +1 -1
- package/lib/retail/model/LeadFormState.d.ts +0 -1
- package/lib/ui-kit/FormField/getObjectValidator.js +1 -1
- package/mobile/bundle/bundle.umd.js +212 -56
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/ApplicationLeadForm/EsiaLoginBanner.d.ts +2 -1
- package/mobile/bundle/components/DebitForm/DebitFormStepsData.d.ts +1 -0
- package/mobile/bundle/components/DebitForm/utils.d.ts +2 -0
- package/mobile/bundle/retail/components/DraftDialog/EmptyDraftDialog.d.ts +4 -1
- package/mobile/bundle/retail/components/DraftDialog/creditProgramCodes.d.ts +39 -0
- package/mobile/bundle/retail/components/DraftDialog/utils.d.ts +5 -34
- package/mobile/bundle/retail/model/LeadFormState.d.ts +0 -1
- package/mobile/dist/components/ApplicationLeadForm/ApplicationLeadForm.js +1 -1
- package/mobile/dist/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
- package/mobile/dist/components/ApplicationLeadForm/EsiaLoginBanner.d.ts +2 -1
- package/mobile/dist/components/ApplicationLeadForm/EsiaLoginBanner.js +2 -2
- package/mobile/dist/components/ApplicationLeadForm/EsiaLoginBanner.js.map +1 -1
- package/mobile/dist/components/ApplicationLeadForm/consents.js +0 -4
- package/mobile/dist/components/ApplicationLeadForm/consents.js.map +1 -1
- package/mobile/dist/components/DebitForm/DebitForm.js +5 -1
- package/mobile/dist/components/DebitForm/DebitForm.js.map +1 -1
- package/mobile/dist/components/DebitForm/DebitFormStepsData.d.ts +1 -0
- package/mobile/dist/components/DebitForm/DebitFormStepsData.js +122 -6
- 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/utils.d.ts +2 -0
- package/mobile/dist/components/DebitForm/utils.js +2 -0
- package/mobile/dist/components/DebitForm/utils.js.map +1 -1
- package/mobile/dist/retail/adaptors/getPersonalInfoData.js +4 -1
- package/mobile/dist/retail/adaptors/getPersonalInfoData.js.map +1 -1
- package/mobile/dist/retail/components/DraftDialog/DraftDialog.js +7 -14
- package/mobile/dist/retail/components/DraftDialog/DraftDialog.js.map +1 -1
- package/mobile/dist/retail/components/DraftDialog/EmptyDraftDialog.d.ts +4 -1
- package/mobile/dist/retail/components/DraftDialog/EmptyDraftDialog.js +4 -2
- package/mobile/dist/retail/components/DraftDialog/EmptyDraftDialog.js.map +1 -1
- package/mobile/dist/retail/components/DraftDialog/creditProgramCodes.d.ts +39 -0
- package/mobile/dist/retail/components/DraftDialog/creditProgramCodes.js +39 -0
- package/mobile/dist/retail/components/DraftDialog/creditProgramCodes.js.map +1 -0
- package/mobile/dist/retail/components/DraftDialog/useDraftDialog.js +1 -1
- package/mobile/dist/retail/components/DraftDialog/useDraftDialog.js.map +1 -1
- package/mobile/dist/retail/components/DraftDialog/utils.d.ts +5 -34
- package/mobile/dist/retail/components/DraftDialog/utils.js +23 -24
- package/mobile/dist/retail/components/DraftDialog/utils.js.map +1 -1
- package/mobile/dist/retail/components/Fields/CardCategoryField.js +8 -2
- package/mobile/dist/retail/components/Fields/CardCategoryField.js.map +1 -1
- package/mobile/dist/retail/model/LeadFormState.d.ts +0 -1
- package/mobile/dist/ui-kit/FormField/getObjectValidator.js +1 -1
- package/mobile/lib/common.css +1 -1
- package/mobile/lib/components/ApplicationLeadForm/ApplicationLeadForm.js +1 -1
- package/mobile/lib/components/ApplicationLeadForm/ApplicationLeadForm.js.map +1 -1
- package/mobile/lib/components/ApplicationLeadForm/EsiaLoginBanner.d.ts +2 -1
- package/mobile/lib/components/ApplicationLeadForm/EsiaLoginBanner.js +2 -2
- package/mobile/lib/components/ApplicationLeadForm/EsiaLoginBanner.js.map +1 -1
- package/mobile/lib/components/ApplicationLeadForm/consents.js +0 -4
- package/mobile/lib/components/ApplicationLeadForm/consents.js.map +1 -1
- package/mobile/lib/components/DebitForm/DebitForm.js +5 -1
- package/mobile/lib/components/DebitForm/DebitForm.js.map +1 -1
- package/mobile/lib/components/DebitForm/DebitFormStepsData.d.ts +1 -0
- package/mobile/lib/components/DebitForm/DebitFormStepsData.js +122 -6
- 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/utils.d.ts +2 -0
- package/mobile/lib/components/DebitForm/utils.js +2 -0
- package/mobile/lib/components/DebitForm/utils.js.map +1 -1
- package/mobile/lib/retail/adaptors/getPersonalInfoData.js +4 -1
- package/mobile/lib/retail/adaptors/getPersonalInfoData.js.map +1 -1
- package/mobile/lib/retail/components/DraftDialog/DraftDialog.js +6 -13
- package/mobile/lib/retail/components/DraftDialog/DraftDialog.js.map +1 -1
- package/mobile/lib/retail/components/DraftDialog/EmptyDraftDialog.d.ts +4 -1
- package/mobile/lib/retail/components/DraftDialog/EmptyDraftDialog.js +4 -2
- package/mobile/lib/retail/components/DraftDialog/EmptyDraftDialog.js.map +1 -1
- package/mobile/lib/retail/components/DraftDialog/creditProgramCodes.d.ts +39 -0
- package/mobile/lib/retail/components/DraftDialog/creditProgramCodes.js +37 -0
- package/mobile/lib/retail/components/DraftDialog/creditProgramCodes.js.map +1 -0
- package/mobile/lib/retail/components/DraftDialog/useDraftDialog.js +1 -1
- package/mobile/lib/retail/components/DraftDialog/useDraftDialog.js.map +1 -1
- package/mobile/lib/retail/components/DraftDialog/utils.d.ts +5 -34
- package/mobile/lib/retail/components/DraftDialog/utils.js +21 -23
- package/mobile/lib/retail/components/DraftDialog/utils.js.map +1 -1
- package/mobile/lib/retail/components/Fields/CardCategoryField.js +9 -3
- package/mobile/lib/retail/components/Fields/CardCategoryField.js.map +1 -1
- package/mobile/lib/retail/model/LeadFormState.d.ts +0 -1
- package/mobile/lib/ui-kit/FormField/getObjectValidator.js +1 -1
- package/mobile/src/components/ApplicationLeadForm/ApplicationLeadForm.tsx +3 -1
- package/mobile/src/components/ApplicationLeadForm/EsiaLoginBanner.tsx +16 -11
- package/mobile/src/components/ApplicationLeadForm/consents.ts +0 -4
- package/mobile/src/components/DebitForm/DebitForm.tsx +6 -1
- package/mobile/src/components/DebitForm/DebitFormStepsData.tsx +123 -6
- package/mobile/src/components/DebitForm/formStateMap.tsx +1 -0
- package/mobile/src/components/DebitForm/utils.ts +2 -0
- package/mobile/src/retail/adaptors/getPersonalInfoData.tsx +4 -1
- package/mobile/src/retail/components/DraftDialog/DraftDialog.tsx +6 -13
- package/mobile/src/retail/components/DraftDialog/EmptyDraftDialog.tsx +8 -2
- package/mobile/src/retail/components/DraftDialog/creditProgramCodes.ts +40 -0
- package/mobile/src/retail/components/DraftDialog/useDraftDialog.tsx +1 -1
- package/mobile/src/retail/components/DraftDialog/utils.ts +22 -27
- package/mobile/src/retail/components/Fields/CardCategoryField.tsx +14 -3
- package/mobile/src/retail/model/LeadFormState.ts +0 -1
- package/mobile/src/ui-kit/FormField/getObjectValidator.tsx +1 -1
- package/package.json +1 -1
- package/src/components/ApplicationLeadForm/ApplicationLeadForm.tsx +3 -1
- package/src/components/ApplicationLeadForm/EsiaLoginBanner.tsx +16 -11
- package/src/components/ApplicationLeadForm/consents.ts +0 -4
- package/src/components/DebitForm/DebitForm.tsx +6 -1
- package/src/components/DebitForm/DebitFormStepsData.tsx +123 -6
- package/src/components/DebitForm/formStateMap.tsx +1 -0
- package/src/components/DebitForm/utils.ts +2 -0
- package/src/retail/adaptors/getPersonalInfoData.tsx +4 -1
- package/src/retail/components/DraftDialog/DraftDialog.tsx +6 -13
- package/src/retail/components/DraftDialog/EmptyDraftDialog.tsx +8 -2
- package/src/retail/components/DraftDialog/creditProgramCodes.ts +40 -0
- package/src/retail/components/DraftDialog/useDraftDialog.tsx +1 -1
- package/src/retail/components/DraftDialog/utils.ts +22 -27
- package/src/retail/components/Fields/CardCategoryField.tsx +14 -3
- package/src/retail/model/LeadFormState.ts +0 -1
- package/src/ui-kit/FormField/getObjectValidator.tsx +1 -1
|
@@ -48,7 +48,7 @@ export const getFormValidator = (fieldDefs, externalValidatorObj = {}) => {
|
|
|
48
48
|
};
|
|
49
49
|
const byNonEmptyValidator = (validator = {}) => ({ name }) => Boolean(validator[name ?? '']);
|
|
50
50
|
const byCondition = (formState) => (fieldDef) => !fieldDef?.condition ||
|
|
51
|
-
fieldDef.condition.values.
|
|
51
|
+
fieldDef.condition.values.some((_) => {
|
|
52
52
|
const dependencyValue = formState?.[fieldDef?.condition?.name ?? ''];
|
|
53
53
|
return _ === (dependencyValue?.key ?? dependencyValue);
|
|
54
54
|
});
|
|
@@ -111,7 +111,9 @@ export const ApplicationLeadForm = JSX<ApplicationLeadFormProps>(
|
|
|
111
111
|
title={title}
|
|
112
112
|
{...rest}
|
|
113
113
|
>
|
|
114
|
-
{!esiaStatus ?
|
|
114
|
+
{!esiaStatus ? (
|
|
115
|
+
<EsiaLoginBanner onChangeEsiaStatus={setEsiaStatus} productType={productType} />
|
|
116
|
+
) : null}
|
|
115
117
|
<form onSubmit={onSubmitWithPrecondition} className="space-y-m relative" ref={leadForm}>
|
|
116
118
|
{esiaStatus === EsiaStatuses.Pending ? <Loader blur={false} /> : null}
|
|
117
119
|
{applicationFormData.map((_, i) => (
|
|
@@ -4,13 +4,14 @@ import { locationNavigator } from '../../external/locationNavigator';
|
|
|
4
4
|
import { getLink } from '../../retail/api/getLink';
|
|
5
5
|
import { Button } from '../../ui-kit/Button/Button';
|
|
6
6
|
import { Img } from '../../ui-kit/Img/Img';
|
|
7
|
-
import { EsiaStatuses } from './ApplicationLeadFormContent';
|
|
7
|
+
import { EsiaStatuses, type ProductType } from './ApplicationLeadFormContent';
|
|
8
8
|
|
|
9
9
|
export interface EsiaLoginBannerProps {
|
|
10
10
|
onChangeEsiaStatus: (status: EsiaStatuses) => void;
|
|
11
|
+
productType: ProductType;
|
|
11
12
|
}
|
|
12
13
|
|
|
13
|
-
export const EsiaLoginBanner = JSX<EsiaLoginBannerProps>(({ onChangeEsiaStatus }) => {
|
|
14
|
+
export const EsiaLoginBanner = JSX<EsiaLoginBannerProps>(({ onChangeEsiaStatus, productType }) => {
|
|
14
15
|
const navigator = locationNavigator();
|
|
15
16
|
|
|
16
17
|
const handleAuth = useCallback(async () => {
|
|
@@ -28,16 +29,20 @@ export const EsiaLoginBanner = JSX<EsiaLoginBannerProps>(({ onChangeEsiaStatus }
|
|
|
28
29
|
}, []);
|
|
29
30
|
|
|
30
31
|
return (
|
|
31
|
-
<div className="flex
|
|
32
|
-
<div className="flex flex-col justify-around w-full">
|
|
33
|
-
<p className="
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<
|
|
38
|
-
|
|
32
|
+
<div className="flex items-center rounded-md bg-main-gray p-4xl">
|
|
33
|
+
<div className="flex gap-m flex-col justify-around w-full">
|
|
34
|
+
<p className="text-xl">{`Заполните данные через Госуслуги${
|
|
35
|
+
productType === 'debitCard' ? ' - это значительно сократит время оформления заявки' : ''
|
|
36
|
+
}`}</p>
|
|
37
|
+
{productType === 'debitCard' ? null : (
|
|
38
|
+
<ul className="list-disc list-inside">
|
|
39
|
+
<li>Вероятность одобрения выше</li>
|
|
40
|
+
<li>Без справок о доходах и трудоустройстве</li>
|
|
41
|
+
<li>С защитой Ваших данных</li>
|
|
42
|
+
</ul>
|
|
43
|
+
)}
|
|
39
44
|
<Img
|
|
40
|
-
className="block
|
|
45
|
+
className="block self-center @md:hidden"
|
|
41
46
|
image={{ icon: 'GosUslugiIcon', iconVersion: 'normal' }}
|
|
42
47
|
height="80"
|
|
43
48
|
width="80"
|
|
@@ -64,10 +64,6 @@ const DEBIT_CARD_CONSENTS: Record<keyof DebitCardFormConsents, ConsentData> = {
|
|
|
64
64
|
text: 'Согласие на информирование о продуктах и услугах Банка',
|
|
65
65
|
docId: 14,
|
|
66
66
|
},
|
|
67
|
-
consentProviderFlg: {
|
|
68
|
-
text: 'Согласие об использовании простой электронной подписи',
|
|
69
|
-
docId: 5,
|
|
70
|
-
},
|
|
71
67
|
consentOthersFlg: {
|
|
72
68
|
text: 'Прочие согласия',
|
|
73
69
|
docId: 20,
|
|
@@ -41,7 +41,12 @@ export const DebitForm = UniBlock<DebitFormProps>(({ className, ...rest }) => {
|
|
|
41
41
|
const sections = stepsSectionsMap[step];
|
|
42
42
|
const isStartStep = step === 0;
|
|
43
43
|
|
|
44
|
-
const [isFormFinished, { setTrue:
|
|
44
|
+
const [isFormFinished, { setTrue: setIsFormFinished }] = useBool(false);
|
|
45
|
+
|
|
46
|
+
const handleFinish = useCallback(() => {
|
|
47
|
+
setIsFormFinished();
|
|
48
|
+
scrollToTop();
|
|
49
|
+
}, []);
|
|
45
50
|
|
|
46
51
|
return (
|
|
47
52
|
<BlockWrapper className={className} {...rest}>
|
|
@@ -1,6 +1,109 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
import { PERSONAL_DATA } from '../../retail/content';
|
|
2
3
|
import { type SectionsRetailProps } from '../../retail/model/InputSectionsType';
|
|
3
4
|
|
|
5
|
+
export const DELIVERY_DEBIT_CARD_CONTENT: SectionsRetailProps[] = [
|
|
6
|
+
{
|
|
7
|
+
title: 'Регион обслуживания карты',
|
|
8
|
+
columns: 1,
|
|
9
|
+
inputs: [],
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
inputs: [
|
|
13
|
+
{
|
|
14
|
+
name: 'regionRetail',
|
|
15
|
+
required: true,
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
title: 'Способ получения',
|
|
21
|
+
columns: 1,
|
|
22
|
+
inputs: [],
|
|
23
|
+
condition: {
|
|
24
|
+
name: 'regionHasDelivery',
|
|
25
|
+
values: [true],
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
inputs: [
|
|
30
|
+
{
|
|
31
|
+
name: 'methodObtain',
|
|
32
|
+
condition: {
|
|
33
|
+
name: 'regionHasDelivery',
|
|
34
|
+
values: [true],
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
title: 'Выбор офиса',
|
|
41
|
+
columns: 1,
|
|
42
|
+
inputs: [],
|
|
43
|
+
condition: {
|
|
44
|
+
name: 'methodObtain',
|
|
45
|
+
values: ['office'],
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
title: 'Адрес доставки',
|
|
50
|
+
columns: 1,
|
|
51
|
+
inputs: [],
|
|
52
|
+
condition: {
|
|
53
|
+
name: 'methodObtain',
|
|
54
|
+
values: ['courier'],
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
inputs: [
|
|
59
|
+
{
|
|
60
|
+
name: 'addressCourier',
|
|
61
|
+
dadata: true,
|
|
62
|
+
condition: {
|
|
63
|
+
name: 'methodObtain',
|
|
64
|
+
values: ['courier'],
|
|
65
|
+
},
|
|
66
|
+
required: true,
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
inputs: [
|
|
72
|
+
{
|
|
73
|
+
name: 'infoCard',
|
|
74
|
+
condition: {
|
|
75
|
+
name: 'methodObtain',
|
|
76
|
+
values: ['courier'],
|
|
77
|
+
},
|
|
78
|
+
label: 'Ожидайте звонка для согласования даты и времени доставки карты',
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
inputs: [
|
|
84
|
+
{
|
|
85
|
+
name: 'comment',
|
|
86
|
+
condition: {
|
|
87
|
+
name: 'methodObtain',
|
|
88
|
+
values: ['courier'],
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
inputs: [
|
|
95
|
+
{
|
|
96
|
+
name: 'addressRetail',
|
|
97
|
+
required: true,
|
|
98
|
+
condition: {
|
|
99
|
+
name: 'methodObtain',
|
|
100
|
+
values: ['office'],
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
},
|
|
105
|
+
];
|
|
106
|
+
|
|
4
107
|
const DEBIT_PERSONAL_INFO_CONTENT: SectionsRetailProps[] = [
|
|
5
108
|
...PERSONAL_DATA,
|
|
6
109
|
{
|
|
@@ -22,9 +125,23 @@ const DEBIT_PERSONAL_INFO_CONTENT: SectionsRetailProps[] = [
|
|
|
22
125
|
{
|
|
23
126
|
title: 'Адрес фактического проживания (место пребывания РФ)',
|
|
24
127
|
inputs: [],
|
|
128
|
+
condition: {
|
|
129
|
+
name: 'addressMatch',
|
|
130
|
+
values: [false],
|
|
131
|
+
},
|
|
25
132
|
},
|
|
26
133
|
{
|
|
27
|
-
inputs: [
|
|
134
|
+
inputs: [
|
|
135
|
+
{
|
|
136
|
+
name: 'addressFact',
|
|
137
|
+
required: true,
|
|
138
|
+
dadata: true,
|
|
139
|
+
condition: {
|
|
140
|
+
name: 'addressMatch',
|
|
141
|
+
values: [false],
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
],
|
|
28
145
|
},
|
|
29
146
|
];
|
|
30
147
|
const DEBIT_CARD_CONTENT: SectionsRetailProps[] = [
|
|
@@ -55,6 +172,9 @@ const DEBIT_CARD_CONTENT: SectionsRetailProps[] = [
|
|
|
55
172
|
},
|
|
56
173
|
],
|
|
57
174
|
},
|
|
175
|
+
{
|
|
176
|
+
inputs: [{ name: 'codeWord', required: true }],
|
|
177
|
+
},
|
|
58
178
|
{
|
|
59
179
|
inputs: [
|
|
60
180
|
{
|
|
@@ -65,13 +185,10 @@ const DEBIT_CARD_CONTENT: SectionsRetailProps[] = [
|
|
|
65
185
|
},
|
|
66
186
|
],
|
|
67
187
|
},
|
|
68
|
-
{
|
|
69
|
-
inputs: [{ name: 'codeWord', required: true }],
|
|
70
|
-
},
|
|
71
188
|
];
|
|
72
189
|
|
|
73
190
|
export const stepsSectionsMap: SectionsRetailProps[][] = [
|
|
74
|
-
|
|
191
|
+
DELIVERY_DEBIT_CARD_CONTENT,
|
|
75
192
|
DEBIT_PERSONAL_INFO_CONTENT,
|
|
76
193
|
DEBIT_CARD_CONTENT,
|
|
77
194
|
];
|
|
@@ -48,7 +48,10 @@ export const getPersonalInfoData = (formData: LeadFormState): Partial<Participan
|
|
|
48
48
|
phone: formatPhone(phone),
|
|
49
49
|
email,
|
|
50
50
|
}),
|
|
51
|
-
participantAddresses: getParticipantAddresses({
|
|
51
|
+
participantAddresses: getParticipantAddresses({
|
|
52
|
+
addressRegistration,
|
|
53
|
+
addressFact: addressMatch ? addressRegistration : addressFact,
|
|
54
|
+
}),
|
|
52
55
|
genderCd: sex
|
|
53
56
|
? {
|
|
54
57
|
key: sex === 'male' ? 'MAN' : 'WOMAN',
|
|
@@ -8,9 +8,10 @@ import { formatDate } from '../../../utils/formatDate';
|
|
|
8
8
|
import { noop } from '../../../utils/noop';
|
|
9
9
|
import { type Task } from '../../api/draftTasksKZO';
|
|
10
10
|
import { useRetailFormStore } from '../../hooks/useRetailFormStore';
|
|
11
|
+
import { creditCodesToProgrammIdMap, creditProgramCodeToProductIdMap } from './creditProgramCodes';
|
|
11
12
|
import { DraftActionButton } from './DraftActionButton';
|
|
12
13
|
import { parseDraftTask } from './parseDraftTask';
|
|
13
|
-
import {
|
|
14
|
+
import { getProductData } from './utils';
|
|
14
15
|
|
|
15
16
|
export interface DraftDialogProps extends OnCloseProps {
|
|
16
17
|
task: Task;
|
|
@@ -33,15 +34,7 @@ export const DraftDialog = JSX<DraftDialogProps>(function ({
|
|
|
33
34
|
|
|
34
35
|
const programmId: string = creditProgramCodeToProductIdMap[creditProgram.code];
|
|
35
36
|
const isCredit = Boolean(creditCodesToProgrammIdMap[creditProgram.code]);
|
|
36
|
-
const
|
|
37
|
-
if (isDebit) {
|
|
38
|
-
return '/debit-card-lead';
|
|
39
|
-
} else if (isCredit) {
|
|
40
|
-
return '/credit-lead';
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return '/credit-card-lead';
|
|
44
|
-
};
|
|
37
|
+
const productData = getProductData(isDebit, isCredit);
|
|
45
38
|
|
|
46
39
|
const { id: participantId, profile } = participants[0];
|
|
47
40
|
|
|
@@ -56,11 +49,11 @@ export const DraftDialog = JSX<DraftDialogProps>(function ({
|
|
|
56
49
|
if (profile?.id) {
|
|
57
50
|
sendAspects(profile.id, taskId);
|
|
58
51
|
}
|
|
59
|
-
navigator.assign(
|
|
52
|
+
navigator.assign(productData.nextStepLink);
|
|
60
53
|
}, []);
|
|
61
54
|
|
|
62
55
|
const handleGoToNewTask = useCallback(() => {
|
|
63
|
-
navigator.assign(
|
|
56
|
+
navigator.assign(productData.newTaskLink);
|
|
64
57
|
}, []);
|
|
65
58
|
|
|
66
59
|
return (
|
|
@@ -81,7 +74,7 @@ export const DraftDialog = JSX<DraftDialogProps>(function ({
|
|
|
81
74
|
<DraftActionButton
|
|
82
75
|
title={isFromLead ? 'Продолжить заполнение текущей заявки' : 'Создать новую заявку'}
|
|
83
76
|
icon="NewLoanIcon"
|
|
84
|
-
description=
|
|
77
|
+
description={productData.description}
|
|
85
78
|
onClick={isFromLead ? onClose : handleGoToNewTask}
|
|
86
79
|
/>
|
|
87
80
|
</div>
|
|
@@ -7,12 +7,18 @@ import { Dialog } from '../../../ui-kit/DialogManager/Dialog';
|
|
|
7
7
|
import { Heading } from '../../../ui-kit/Heading/Heading';
|
|
8
8
|
import { Paragraph } from '../../../ui-kit/Paragraph/Paragraph';
|
|
9
9
|
import { noop } from '../../../utils/noop';
|
|
10
|
+
import { getProductData } from './utils';
|
|
10
11
|
|
|
11
|
-
export
|
|
12
|
+
export interface EmptyDraftDialogProps extends OnCloseProps {
|
|
13
|
+
isDebit?: boolean;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const EmptyDraftDialog = JSX<EmptyDraftDialogProps>(function ({ isDebit, onClose = noop }) {
|
|
12
17
|
const navigator = locationNavigator();
|
|
18
|
+
const productData = getProductData(isDebit);
|
|
13
19
|
|
|
14
20
|
const handleGoNewTask = useCallback(() => {
|
|
15
|
-
navigator.assign(
|
|
21
|
+
navigator.assign(productData.newTaskLink);
|
|
16
22
|
}, []);
|
|
17
23
|
|
|
18
24
|
const handleGoMainPage = useCallback(() => {
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/* eslint-disable camelcase */
|
|
2
|
+
|
|
3
|
+
export const creditCodesToProgrammIdMap = {
|
|
4
|
+
credit_cash: '10',
|
|
5
|
+
credit_cash_single_doc: '28',
|
|
6
|
+
credit_mcx: '39',
|
|
7
|
+
family_offer_credit: '41',
|
|
8
|
+
gas_engine_fuel: '33',
|
|
9
|
+
pension_credit: '12',
|
|
10
|
+
ref_credit: '11',
|
|
11
|
+
ref_credit_single_doc: '29',
|
|
12
|
+
self_employed: '34',
|
|
13
|
+
summer_cash: '35',
|
|
14
|
+
summer_cash_pens: '36',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const debitCardCodesToProgrammIdMap = {
|
|
18
|
+
amur_debit_card: '17',
|
|
19
|
+
owner_debit_card: '16',
|
|
20
|
+
pension_debit_card: '18',
|
|
21
|
+
salary_debit_card: '38',
|
|
22
|
+
vordi_debit_card: '40',
|
|
23
|
+
eco_debit_card: '42',
|
|
24
|
+
junior_debit_card: '43',
|
|
25
|
+
appetit_debit_card: '44',
|
|
26
|
+
owner_debit_card_plus: '46',
|
|
27
|
+
owner_debit_card_pens_plus: '47',
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const cardCodesToProgrammIdMap = {
|
|
31
|
+
amur_card: '14',
|
|
32
|
+
owner_card: '13',
|
|
33
|
+
travel_card: '15',
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const creditProgramCodeToProductIdMap = {
|
|
37
|
+
...creditCodesToProgrammIdMap,
|
|
38
|
+
...cardCodesToProgrammIdMap,
|
|
39
|
+
...debitCardCodesToProgrammIdMap,
|
|
40
|
+
};
|
|
@@ -10,7 +10,7 @@ export const useDraftDialog = () => {
|
|
|
10
10
|
open: ({ task, isFromLead, isDebit, onClose, sendAspects }: Partial<DraftDialogProps>) => {
|
|
11
11
|
task
|
|
12
12
|
? openDraftDialog({ task, isFromLead, isDebit, onClose, sendAspects })
|
|
13
|
-
: openEmptyDraftDialog({});
|
|
13
|
+
: openEmptyDraftDialog({ isDebit });
|
|
14
14
|
},
|
|
15
15
|
};
|
|
16
16
|
};
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/* eslint-disable camelcase */
|
|
2
|
-
|
|
3
1
|
import { type Option } from '../../../ui-kit/Select/Option';
|
|
4
2
|
import { countIncomeAverage } from '../../adaptors/getFamilyStatusAndIncomeData';
|
|
5
3
|
import { type Participant } from '../../api/updateUserTask';
|
|
@@ -43,31 +41,6 @@ export const INCOME_CERTIFICATE = {
|
|
|
43
41
|
OTHER: 'Другое',
|
|
44
42
|
};
|
|
45
43
|
|
|
46
|
-
export const creditCodesToProgrammIdMap = {
|
|
47
|
-
credit_cash: '10',
|
|
48
|
-
credit_cash_single_doc: '28',
|
|
49
|
-
credit_mcx: '39',
|
|
50
|
-
family_offer_credit: '41',
|
|
51
|
-
gas_engine_fuel: '33',
|
|
52
|
-
pension_credit: '12',
|
|
53
|
-
ref_credit: '11',
|
|
54
|
-
ref_credit_single_doc: '29',
|
|
55
|
-
self_employed: '34',
|
|
56
|
-
summer_cash: '35',
|
|
57
|
-
summer_cash_pens: '36',
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
export const cardCodesToProgrammIdMap = {
|
|
61
|
-
amur_card: '14',
|
|
62
|
-
owner_card: '13',
|
|
63
|
-
travel_card: '15',
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
export const creditProgramCodeToProductIdMap = {
|
|
67
|
-
...creditCodesToProgrammIdMap,
|
|
68
|
-
...cardCodesToProgrammIdMap,
|
|
69
|
-
};
|
|
70
|
-
|
|
71
44
|
export const getParticipantIncomes = (participantIncomes: Participant['participantIncomes']) => {
|
|
72
45
|
const wages = participantIncomes?.find(
|
|
73
46
|
(contact) => contact.incomeTypeCd.key === EIncomesType.WAGES,
|
|
@@ -161,3 +134,25 @@ export const getSelectValue = (
|
|
|
161
134
|
}
|
|
162
135
|
: undefined;
|
|
163
136
|
};
|
|
137
|
+
|
|
138
|
+
export const getProductData = (isDebit = false, isCredit = false) => {
|
|
139
|
+
if (isDebit) {
|
|
140
|
+
return {
|
|
141
|
+
nextStepLink: '/debit-card-lead',
|
|
142
|
+
newTaskLink: '/natural/debetcards',
|
|
143
|
+
description: 'На дебетовую карту',
|
|
144
|
+
};
|
|
145
|
+
} else if (isCredit) {
|
|
146
|
+
return {
|
|
147
|
+
nextStepLink: '/credit-lead',
|
|
148
|
+
newTaskLink: '/natural/loans/all-goals',
|
|
149
|
+
description: 'На получение кредита',
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return {
|
|
154
|
+
nextStepLink: '/credit-card-lead',
|
|
155
|
+
newTaskLink: '/natural/creditcards/svoya',
|
|
156
|
+
description: 'На получение кредитной карты',
|
|
157
|
+
};
|
|
158
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JSX } from '@redneckz/uni-jsx';
|
|
2
|
-
import { useEffect, useMemo, useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
2
|
+
import { useCallback, useEffect, useMemo, useState } from '@redneckz/uni-jsx/lib/hooks';
|
|
3
3
|
import { useLocalStorage } from '../../../hooks/useLocalStorage';
|
|
4
4
|
import { type CustomFieldProps } from '../../../ui-kit/FormField/CustomFieldProps';
|
|
5
5
|
import { InfoCard } from '../../../ui-kit/InfoCard/InfoCard';
|
|
@@ -13,6 +13,17 @@ export const CardCategoryField = JSX<CustomFieldProps>(({ field, input }) => {
|
|
|
13
13
|
const { value: selectedCardCategory, onChange: cardCategoryChange } = field('cardCategory');
|
|
14
14
|
const selectedPaymentSystem = field('paymentSystem')?.value?.key;
|
|
15
15
|
|
|
16
|
+
const getCardCategoryValue = useCallback(
|
|
17
|
+
(fetchedCardTypes: CardTypeData[]) =>
|
|
18
|
+
fetchedCardTypes.length === 1
|
|
19
|
+
? {
|
|
20
|
+
key: fetchedCardTypes[0].key,
|
|
21
|
+
text: fetchedCardTypes[0].value,
|
|
22
|
+
}
|
|
23
|
+
: null,
|
|
24
|
+
[],
|
|
25
|
+
);
|
|
26
|
+
|
|
16
27
|
useEffect(() => {
|
|
17
28
|
if (selectedPaymentSystem && programId) {
|
|
18
29
|
(async () => {
|
|
@@ -20,11 +31,11 @@ export const CardCategoryField = JSX<CustomFieldProps>(({ field, input }) => {
|
|
|
20
31
|
setCardTypes(fetchedCardTypes);
|
|
21
32
|
|
|
22
33
|
if (!isValidCardCategory(fetchedCardTypes, selectedCardCategory as Option)) {
|
|
23
|
-
cardCategoryChange
|
|
34
|
+
cardCategoryChange?.(getCardCategoryValue(fetchedCardTypes));
|
|
24
35
|
}
|
|
25
36
|
})();
|
|
26
37
|
}
|
|
27
|
-
}, [selectedPaymentSystem]);
|
|
38
|
+
}, [selectedPaymentSystem, getCardCategoryValue]);
|
|
28
39
|
|
|
29
40
|
const description = useMemo(
|
|
30
41
|
() => cardTypes?.find((_) => _.key === selectedCardCategory?.key)?.description,
|
|
@@ -80,7 +80,7 @@ const byCondition =
|
|
|
80
80
|
<FormState extends Record<string, any>>(formState: FormState) =>
|
|
81
81
|
(fieldDef: BaseFieldDef) =>
|
|
82
82
|
!fieldDef?.condition ||
|
|
83
|
-
fieldDef.condition.values.
|
|
83
|
+
fieldDef.condition.values.some((_) => {
|
|
84
84
|
const dependencyValue = formState?.[fieldDef?.condition?.name ?? ''];
|
|
85
85
|
|
|
86
86
|
return _ === (dependencyValue?.key ?? dependencyValue);
|
package/package.json
CHANGED
|
@@ -111,7 +111,9 @@ export const ApplicationLeadForm = JSX<ApplicationLeadFormProps>(
|
|
|
111
111
|
title={title}
|
|
112
112
|
{...rest}
|
|
113
113
|
>
|
|
114
|
-
{!esiaStatus ?
|
|
114
|
+
{!esiaStatus ? (
|
|
115
|
+
<EsiaLoginBanner onChangeEsiaStatus={setEsiaStatus} productType={productType} />
|
|
116
|
+
) : null}
|
|
115
117
|
<form onSubmit={onSubmitWithPrecondition} className="space-y-m relative" ref={leadForm}>
|
|
116
118
|
{esiaStatus === EsiaStatuses.Pending ? <Loader blur={false} /> : null}
|
|
117
119
|
{applicationFormData.map((_, i) => (
|
|
@@ -4,13 +4,14 @@ import { locationNavigator } from '../../external/locationNavigator';
|
|
|
4
4
|
import { getLink } from '../../retail/api/getLink';
|
|
5
5
|
import { Button } from '../../ui-kit/Button/Button';
|
|
6
6
|
import { Img } from '../../ui-kit/Img/Img';
|
|
7
|
-
import { EsiaStatuses } from './ApplicationLeadFormContent';
|
|
7
|
+
import { EsiaStatuses, type ProductType } from './ApplicationLeadFormContent';
|
|
8
8
|
|
|
9
9
|
export interface EsiaLoginBannerProps {
|
|
10
10
|
onChangeEsiaStatus: (status: EsiaStatuses) => void;
|
|
11
|
+
productType: ProductType;
|
|
11
12
|
}
|
|
12
13
|
|
|
13
|
-
export const EsiaLoginBanner = JSX<EsiaLoginBannerProps>(({ onChangeEsiaStatus }) => {
|
|
14
|
+
export const EsiaLoginBanner = JSX<EsiaLoginBannerProps>(({ onChangeEsiaStatus, productType }) => {
|
|
14
15
|
const navigator = locationNavigator();
|
|
15
16
|
|
|
16
17
|
const handleAuth = useCallback(async () => {
|
|
@@ -28,16 +29,20 @@ export const EsiaLoginBanner = JSX<EsiaLoginBannerProps>(({ onChangeEsiaStatus }
|
|
|
28
29
|
}, []);
|
|
29
30
|
|
|
30
31
|
return (
|
|
31
|
-
<div className="flex
|
|
32
|
-
<div className="flex flex-col justify-around w-full">
|
|
33
|
-
<p className="
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<
|
|
38
|
-
|
|
32
|
+
<div className="flex items-center rounded-md bg-main-gray p-4xl">
|
|
33
|
+
<div className="flex gap-m flex-col justify-around w-full">
|
|
34
|
+
<p className="text-xl">{`Заполните данные через Госуслуги${
|
|
35
|
+
productType === 'debitCard' ? ' - это значительно сократит время оформления заявки' : ''
|
|
36
|
+
}`}</p>
|
|
37
|
+
{productType === 'debitCard' ? null : (
|
|
38
|
+
<ul className="list-disc list-inside">
|
|
39
|
+
<li>Вероятность одобрения выше</li>
|
|
40
|
+
<li>Без справок о доходах и трудоустройстве</li>
|
|
41
|
+
<li>С защитой Ваших данных</li>
|
|
42
|
+
</ul>
|
|
43
|
+
)}
|
|
39
44
|
<Img
|
|
40
|
-
className="block
|
|
45
|
+
className="block self-center @md:hidden"
|
|
41
46
|
image={{ icon: 'GosUslugiIcon', iconVersion: 'normal' }}
|
|
42
47
|
height="80"
|
|
43
48
|
width="80"
|
|
@@ -64,10 +64,6 @@ const DEBIT_CARD_CONSENTS: Record<keyof DebitCardFormConsents, ConsentData> = {
|
|
|
64
64
|
text: 'Согласие на информирование о продуктах и услугах Банка',
|
|
65
65
|
docId: 14,
|
|
66
66
|
},
|
|
67
|
-
consentProviderFlg: {
|
|
68
|
-
text: 'Согласие об использовании простой электронной подписи',
|
|
69
|
-
docId: 5,
|
|
70
|
-
},
|
|
71
67
|
consentOthersFlg: {
|
|
72
68
|
text: 'Прочие согласия',
|
|
73
69
|
docId: 20,
|
|
@@ -41,7 +41,12 @@ export const DebitForm = UniBlock<DebitFormProps>(({ className, ...rest }) => {
|
|
|
41
41
|
const sections = stepsSectionsMap[step];
|
|
42
42
|
const isStartStep = step === 0;
|
|
43
43
|
|
|
44
|
-
const [isFormFinished, { setTrue:
|
|
44
|
+
const [isFormFinished, { setTrue: setIsFormFinished }] = useBool(false);
|
|
45
|
+
|
|
46
|
+
const handleFinish = useCallback(() => {
|
|
47
|
+
setIsFormFinished();
|
|
48
|
+
scrollToTop();
|
|
49
|
+
}, []);
|
|
45
50
|
|
|
46
51
|
return (
|
|
47
52
|
<BlockWrapper className={className} {...rest}>
|