@redneckz/wildless-cms-uni-blocks 0.14.745 → 0.14.746
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 +81 -8
- package/bundle/bundle.umd.min.js +1 -1
- package/bundle/components/CardTransfer/CardTransferContent.d.ts +2 -1
- package/bundle/components/CardTransfer/SubmitFailedDialog.d.ts +6 -0
- package/bundle/components/CardTransfer/submitCardTransfer.d.ts +16 -0
- package/bundle/components/CardTransfer/useSubmitCardTransfer.d.ts +11 -0
- package/dist/components/CardTransfer/CardTransfer.js +9 -7
- package/dist/components/CardTransfer/CardTransfer.js.map +1 -1
- package/dist/components/CardTransfer/CardTransferContent.d.ts +2 -1
- package/dist/components/CardTransfer/SubmitFailedDialog.d.ts +6 -0
- package/dist/components/CardTransfer/SubmitFailedDialog.js +13 -0
- package/dist/components/CardTransfer/SubmitFailedDialog.js.map +1 -0
- package/dist/components/CardTransfer/submitCardTransfer.d.ts +16 -0
- package/dist/components/CardTransfer/submitCardTransfer.js +44 -0
- package/dist/components/CardTransfer/submitCardTransfer.js.map +1 -0
- package/dist/components/CardTransfer/useSubmitCardTransfer.d.ts +11 -0
- package/dist/components/CardTransfer/useSubmitCardTransfer.js +33 -0
- package/dist/components/CardTransfer/useSubmitCardTransfer.js.map +1 -0
- package/lib/common.css +1 -1
- package/lib/components/CardTransfer/CardTransfer.fixture.d.ts +2 -1
- package/lib/components/CardTransfer/CardTransfer.fixture.mobile.d.ts +2 -1
- package/lib/components/CardTransfer/CardTransfer.js +10 -8
- package/lib/components/CardTransfer/CardTransfer.js.map +1 -1
- package/lib/components/CardTransfer/CardTransferContent.d.ts +2 -1
- package/lib/components/CardTransfer/SubmitFailedDialog.d.ts +6 -0
- package/lib/components/CardTransfer/SubmitFailedDialog.js +10 -0
- package/lib/components/CardTransfer/SubmitFailedDialog.js.map +1 -0
- package/lib/components/CardTransfer/submitCardTransfer.d.ts +16 -0
- package/lib/components/CardTransfer/submitCardTransfer.js +39 -0
- package/lib/components/CardTransfer/submitCardTransfer.js.map +1 -0
- package/lib/components/CardTransfer/useSubmitCardTransfer.d.ts +11 -0
- package/lib/components/CardTransfer/useSubmitCardTransfer.js +30 -0
- package/lib/components/CardTransfer/useSubmitCardTransfer.js.map +1 -0
- package/mobile/bundle/bundle.umd.js +81 -8
- package/mobile/bundle/bundle.umd.min.js +1 -1
- package/mobile/bundle/components/CardTransfer/CardTransferContent.d.ts +2 -1
- package/mobile/bundle/components/CardTransfer/SubmitFailedDialog.d.ts +6 -0
- package/mobile/bundle/components/CardTransfer/submitCardTransfer.d.ts +16 -0
- package/mobile/bundle/components/CardTransfer/useSubmitCardTransfer.d.ts +11 -0
- package/mobile/dist/components/CardTransfer/CardTransfer.js +9 -7
- package/mobile/dist/components/CardTransfer/CardTransfer.js.map +1 -1
- package/mobile/dist/components/CardTransfer/CardTransferContent.d.ts +2 -1
- package/mobile/dist/components/CardTransfer/SubmitFailedDialog.d.ts +6 -0
- package/mobile/dist/components/CardTransfer/SubmitFailedDialog.js +13 -0
- package/mobile/dist/components/CardTransfer/SubmitFailedDialog.js.map +1 -0
- package/mobile/dist/components/CardTransfer/submitCardTransfer.d.ts +16 -0
- package/mobile/dist/components/CardTransfer/submitCardTransfer.js +44 -0
- package/mobile/dist/components/CardTransfer/submitCardTransfer.js.map +1 -0
- package/mobile/dist/components/CardTransfer/useSubmitCardTransfer.d.ts +11 -0
- package/mobile/dist/components/CardTransfer/useSubmitCardTransfer.js +33 -0
- package/mobile/dist/components/CardTransfer/useSubmitCardTransfer.js.map +1 -0
- package/mobile/lib/common.css +1 -1
- package/mobile/lib/components/CardTransfer/CardTransfer.js +10 -8
- package/mobile/lib/components/CardTransfer/CardTransfer.js.map +1 -1
- package/mobile/lib/components/CardTransfer/CardTransferContent.d.ts +2 -1
- package/mobile/lib/components/CardTransfer/SubmitFailedDialog.d.ts +6 -0
- package/mobile/lib/components/CardTransfer/SubmitFailedDialog.js +10 -0
- package/mobile/lib/components/CardTransfer/SubmitFailedDialog.js.map +1 -0
- package/mobile/lib/components/CardTransfer/submitCardTransfer.d.ts +16 -0
- package/mobile/lib/components/CardTransfer/submitCardTransfer.js +39 -0
- package/mobile/lib/components/CardTransfer/submitCardTransfer.js.map +1 -0
- package/mobile/lib/components/CardTransfer/useSubmitCardTransfer.d.ts +11 -0
- package/mobile/lib/components/CardTransfer/useSubmitCardTransfer.js +30 -0
- package/mobile/lib/components/CardTransfer/useSubmitCardTransfer.js.map +1 -0
- package/mobile/src/components/CardTransfer/CardTransfer.tsx +12 -9
- package/mobile/src/components/CardTransfer/CardTransferContent.ts +3 -1
- package/mobile/src/components/CardTransfer/SubmitFailedDialog.tsx +42 -0
- package/mobile/src/components/CardTransfer/submitCardTransfer.ts +72 -0
- package/mobile/src/components/CardTransfer/useSubmitCardTransfer.tsx +47 -0
- package/package.json +1 -1
- package/src/components/CardTransfer/CardTransfer.fixture.mobile.tsx +11 -3
- package/src/components/CardTransfer/CardTransfer.fixture.tsx +13 -1
- package/src/components/CardTransfer/CardTransfer.tsx +12 -9
- package/src/components/CardTransfer/CardTransferContent.ts +3 -1
- package/src/components/CardTransfer/SubmitFailedDialog.tsx +42 -0
- package/src/components/CardTransfer/submitCardTransfer.ts +72 -0
- package/src/components/CardTransfer/useSubmitCardTransfer.tsx +47 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
|
|
2
|
+
import { Dialog } from '../../ui-kit/DialogManager/Dialog.js';
|
|
3
|
+
import { Img } from '../../ui-kit/Img/Img.js';
|
|
4
|
+
import { Headline } from '../Headline/Headline.js';
|
|
5
|
+
const FAILED_TITLE = 'Ошибка перевода';
|
|
6
|
+
export const SubmitFailedDialog = ({ onClose, errorCode, errorMessage, }) => {
|
|
7
|
+
const description = errorCode ? `Код ошибки - ${errorCode}` : 'Пожалуйста, повторите позднее';
|
|
8
|
+
return (_jsx(Dialog, { className: "my-6xl max-w-lg w-full min-h-fit mx-auto", onClose: onClose, children: _jsxs("div", { className: "flex flex-col gap-lg items-center rounded-md space-x-m", children: [_jsx(Img, { image: { icon: 'ResponseFailIcon', iconVersion: 'normal' }, width: "136", height: "136" }), _jsx(Headline, { className: "w-full", title: FAILED_TITLE, description: description, headlineVersion: "XS", isEmbedded: true }), errorMessage ? (_jsxs("div", { className: "bg-secondary-dark rounded-xl px-4 pt-4 pb-8 grid gap-4 grid-cols-12", children: [_jsxs("div", { className: "col-span-8", children: [" ", errorMessage] }), _jsx("div", { className: "col-span-4", children: _jsx(Img, { image: { icon: 'ResponseFailIcon', iconVersion: 'normal' } }) })] })) : null] }) }));
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=SubmitFailedDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubmitFailedDialog.js","sourceRoot":"","sources":["../../../src/components/CardTransfer/SubmitFailedDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAQhD,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAEvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,OAAO,EACP,SAAS,EACT,YAAY,GACY,EAAE,EAAE;IAC5B,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC,CAAC,+BAA+B,CAAC;IAE9F,OAAO,CACL,KAAC,MAAM,IAAC,SAAS,EAAC,0CAA0C,EAAC,OAAO,EAAE,OAAO,YAC3E,eAAK,SAAS,EAAC,wDAAwD,aACrE,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,GAAG,EAC5F,KAAC,QAAQ,IACP,SAAS,EAAC,QAAQ,EAClB,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAC,IAAI,EACpB,UAAU,EAAE,IAAI,GAChB,EACD,YAAY,CAAC,CAAC,CAAC,CACd,eAAK,SAAS,EAAC,qEAAqE,aAClF,eAAK,SAAS,EAAC,YAAY,kBAAG,YAAY,IAAO,EACjD,cAAK,SAAS,EAAC,YAAY,YACzB,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAI,GAC/D,IACF,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,GACC,CACV,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type CardTransferFormType } from './CardTransferContent';
|
|
2
|
+
export declare type CardTransferResponse = Partial<{
|
|
3
|
+
errorCode: number;
|
|
4
|
+
errorMessage: string;
|
|
5
|
+
orderId: string;
|
|
6
|
+
formUrl: string;
|
|
7
|
+
}>;
|
|
8
|
+
export declare const submitCardTransfer: (typeForm: CardTransferFormType, amount: number) => Promise<CardTransferResponse | null>;
|
|
9
|
+
export declare const isSuccessResponse: (response: CardTransferResponse | null) => response is {
|
|
10
|
+
orderId: string;
|
|
11
|
+
formUrl: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const isErrorInResponse: (response: CardTransferResponse | null) => response is {
|
|
14
|
+
errorCode: number;
|
|
15
|
+
errorMessage: string;
|
|
16
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { API_BASE_URI } from '../../api/apiBaseUrl.js';
|
|
2
|
+
import { locationNavigator } from '../../external/locationNavigator.js';
|
|
3
|
+
const paymentURLMap = {
|
|
4
|
+
private: 'p2p/registerP2P',
|
|
5
|
+
business: 'b2c/registerB2C',
|
|
6
|
+
};
|
|
7
|
+
const SUCCESS_URL = '/p2p/success';
|
|
8
|
+
const FAIL_URL = '/p2p/success';
|
|
9
|
+
const CURRENCY_CODE = '643';
|
|
10
|
+
const LANGUAGE = 'ru';
|
|
11
|
+
export const submitCardTransfer = async (typeForm, amount) => {
|
|
12
|
+
const navigator = locationNavigator();
|
|
13
|
+
const submitBody = {
|
|
14
|
+
amount: String(amount),
|
|
15
|
+
currency: CURRENCY_CODE,
|
|
16
|
+
returnUrl: `${navigator.origin}${SUCCESS_URL}`,
|
|
17
|
+
failUrl: `${navigator.origin}${FAIL_URL}`,
|
|
18
|
+
language: LANGUAGE,
|
|
19
|
+
};
|
|
20
|
+
const url = `${API_BASE_URI}/payment/${paymentURLMap[typeForm]}`;
|
|
21
|
+
try {
|
|
22
|
+
const res = await fetch(url, {
|
|
23
|
+
method: 'POST',
|
|
24
|
+
headers: { 'Content-Type': 'application/json' },
|
|
25
|
+
mode: 'cors',
|
|
26
|
+
body: JSON.stringify(submitBody),
|
|
27
|
+
});
|
|
28
|
+
if (!res.ok) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
return await res.json();
|
|
32
|
+
}
|
|
33
|
+
catch (ex) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
export const isSuccessResponse = (response) => Boolean(response?.formUrl) && Boolean(response?.orderId);
|
|
38
|
+
export const isErrorInResponse = (response) => Boolean(response?.errorMessage) && response?.errorCode !== 0;
|
|
39
|
+
//# sourceMappingURL=submitCardTransfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submitCardTransfer.js","sourceRoot":"","sources":["../../../src/components/CardTransfer/submitCardTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAkBrE,MAAM,aAAa,GAAyC;IAC1D,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,iBAAiB;CAC5B,CAAC;AAEF,MAAM,WAAW,GAAG,cAAc,CAAC;AACnC,MAAM,QAAQ,GAAG,cAAc,CAAC;AAChC,MAAM,aAAa,GAAG,KAAK,CAAC;AAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC;AAEtB,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,QAA8B,EAC9B,MAAc,EACwB,EAAE;IACxC,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IAEtC,MAAM,UAAU,GAA2B;QACzC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACtB,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,GAAG,SAAS,CAAC,MAAM,GAAG,WAAW,EAAE;QAC9C,OAAO,EAAE,GAAG,SAAS,CAAC,MAAM,GAAG,QAAQ,EAAE;QACzC,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF,MAAM,GAAG,GAAG,GAAG,YAAY,YAAY,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;IAEjE,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;SACjC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QAED,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;KACzB;IAAC,OAAO,EAAE,EAAE;QACX,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAAqC,EACa,EAAE,CACpD,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAAqC,EACoB,EAAE,CAC3D,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,QAAQ,EAAE,SAAS,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type CardTransferFormType } from './CardTransferContent';
|
|
2
|
+
export interface TransactionStore {
|
|
3
|
+
transaction: {
|
|
4
|
+
orderId: string;
|
|
5
|
+
type: 'p2p' | 'b2c';
|
|
6
|
+
url: string;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export declare const useSubmitCardTransfer: (formType: CardTransferFormType) => ({ amount }: {
|
|
10
|
+
amount: number;
|
|
11
|
+
}) => Promise<void>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
|
|
2
|
+
import { useSessionStore } from '@redneckz/uni-jsx/lib/Store/useSessionStore';
|
|
3
|
+
import { locationNavigator } from '../../external/locationNavigator.js';
|
|
4
|
+
import { useDialog } from '../../ui-kit/DialogManager/useDialog.js';
|
|
5
|
+
import { isErrorInResponse, isSuccessResponse, submitCardTransfer } from './submitCardTransfer.js';
|
|
6
|
+
import { SubmitFailedDialog } from './SubmitFailedDialog.js';
|
|
7
|
+
export const useSubmitCardTransfer = (formType) => {
|
|
8
|
+
const responseTypeDialog = useDialog(SubmitFailedDialog);
|
|
9
|
+
const sessionStore = useSessionStore();
|
|
10
|
+
const navigator = locationNavigator();
|
|
11
|
+
const adjustedTypeForm = formType === 'private' ? 'p2p' : 'b2c';
|
|
12
|
+
return useCallback(async ({ amount }) => {
|
|
13
|
+
const response = await submitCardTransfer(formType, amount);
|
|
14
|
+
if (isSuccessResponse(response)) {
|
|
15
|
+
sessionStore.transaction = {
|
|
16
|
+
orderId: response.orderId,
|
|
17
|
+
type: adjustedTypeForm,
|
|
18
|
+
url: navigator.href,
|
|
19
|
+
};
|
|
20
|
+
navigator.assign(`${adjustedTypeForm}/?formUrl=${encodeURIComponent(response.formUrl)}`);
|
|
21
|
+
}
|
|
22
|
+
if (isErrorInResponse(response)) {
|
|
23
|
+
responseTypeDialog.open({
|
|
24
|
+
errorCode: response.errorCode,
|
|
25
|
+
errorMessage: response.errorMessage,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}, [formType]);
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=useSubmitCardTransfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSubmitCardTransfer.js","sourceRoot":"","sources":["../../../src/components/CardTransfer/useSubmitCardTransfer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAU1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAA8B,EAAE,EAAE;IACtE,MAAM,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,eAAe,EAAoB,CAAC;IACzD,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IAEtC,MAAM,gBAAgB,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAEhE,OAAO,WAAW,CAChB,KAAK,EAAE,EAAE,MAAM,EAAsB,EAAE,EAAE;QACvC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE5D,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YAC/B,YAAY,CAAC,WAAW,GAAG;gBACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,IAAI,EAAE,gBAAgB;gBACtB,GAAG,EAAE,SAAS,CAAC,IAAI;aACpB,CAAC;YAEF,SAAS,CAAC,MAAM,CAAC,GAAG,gBAAgB,aAAa,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SAC1F;QAED,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YAC/B,kBAAkB,CAAC,IAAI,CAAC;gBACtB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC,CAAC,CAAC;SACJ;IACH,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -6492,24 +6492,97 @@
|
|
|
6492
6492
|
|
|
6493
6493
|
const CurrencyInput = JSX((props) => (jsx(NumberInput, { ...props, fractionDigits: 2, children: jsx("div", { className: "absolute right-4 bottom-4", children: jsx(Text, { size: "text-xl", font: "font-light", children: "\u20BD" }) }) })));
|
|
6494
6494
|
|
|
6495
|
+
const sessionStore = new Store(); // sessionStorage cache
|
|
6496
|
+
replicate(sessionStore, new StorageAdapter(globalThis?.sessionStorage));
|
|
6497
|
+
function useSessionStore() {
|
|
6498
|
+
return useStore(sessionStore);
|
|
6499
|
+
}
|
|
6500
|
+
|
|
6501
|
+
const paymentURLMap = {
|
|
6502
|
+
private: 'p2p/registerP2P',
|
|
6503
|
+
business: 'b2c/registerB2C',
|
|
6504
|
+
};
|
|
6505
|
+
const SUCCESS_URL = '/p2p/success';
|
|
6506
|
+
const FAIL_URL = '/p2p/success';
|
|
6507
|
+
const CURRENCY_CODE = '643';
|
|
6508
|
+
const LANGUAGE = 'ru';
|
|
6509
|
+
const submitCardTransfer = async (typeForm, amount) => {
|
|
6510
|
+
const navigator = locationNavigator();
|
|
6511
|
+
const submitBody = {
|
|
6512
|
+
amount: String(amount),
|
|
6513
|
+
currency: CURRENCY_CODE,
|
|
6514
|
+
returnUrl: `${navigator.origin}${SUCCESS_URL}`,
|
|
6515
|
+
failUrl: `${navigator.origin}${FAIL_URL}`,
|
|
6516
|
+
language: LANGUAGE,
|
|
6517
|
+
};
|
|
6518
|
+
const url = `${API_BASE_URI}/payment/${paymentURLMap[typeForm]}`;
|
|
6519
|
+
try {
|
|
6520
|
+
const res = await fetch(url, {
|
|
6521
|
+
method: 'POST',
|
|
6522
|
+
headers: { 'Content-Type': 'application/json' },
|
|
6523
|
+
mode: 'cors',
|
|
6524
|
+
body: JSON.stringify(submitBody),
|
|
6525
|
+
});
|
|
6526
|
+
if (!res.ok) {
|
|
6527
|
+
return null;
|
|
6528
|
+
}
|
|
6529
|
+
return await res.json();
|
|
6530
|
+
}
|
|
6531
|
+
catch (ex) {
|
|
6532
|
+
return null;
|
|
6533
|
+
}
|
|
6534
|
+
};
|
|
6535
|
+
const isSuccessResponse = (response) => Boolean(response?.formUrl) && Boolean(response?.orderId);
|
|
6536
|
+
const isErrorInResponse = (response) => Boolean(response?.errorMessage) && response?.errorCode !== 0;
|
|
6537
|
+
|
|
6538
|
+
const FAILED_TITLE = 'Ошибка перевода';
|
|
6539
|
+
const SubmitFailedDialog = ({ onClose, errorCode, errorMessage, }) => {
|
|
6540
|
+
const description = errorCode ? `Код ошибки - ${errorCode}` : 'Пожалуйста, повторите позднее';
|
|
6541
|
+
return (jsx(Dialog, { className: "my-6xl max-w-lg w-full min-h-fit mx-auto", onClose: onClose, children: jsxs("div", { className: "flex flex-col gap-lg items-center rounded-md space-x-m", children: [jsx(Img, { image: { icon: 'ResponseFailIcon', iconVersion: 'normal' }, width: "136", height: "136" }), jsx(Headline, { className: "w-full", title: FAILED_TITLE, description: description, headlineVersion: "XS", isEmbedded: true }), errorMessage ? (jsxs("div", { className: "bg-secondary-dark rounded-xl px-4 pt-4 pb-8 grid gap-4 grid-cols-12", children: [jsxs("div", { className: "col-span-8", children: [" ", errorMessage] }), jsx("div", { className: "col-span-4", children: jsx(Img, { image: { icon: 'ResponseFailIcon', iconVersion: 'normal' } }) })] })) : null] }) }));
|
|
6542
|
+
};
|
|
6543
|
+
|
|
6544
|
+
const useSubmitCardTransfer = (formType) => {
|
|
6545
|
+
const responseTypeDialog = useDialog(SubmitFailedDialog);
|
|
6546
|
+
const sessionStore = useSessionStore();
|
|
6547
|
+
const navigator = locationNavigator();
|
|
6548
|
+
const adjustedTypeForm = formType === 'private' ? 'p2p' : 'b2c';
|
|
6549
|
+
return useCallback(async ({ amount }) => {
|
|
6550
|
+
const response = await submitCardTransfer(formType, amount);
|
|
6551
|
+
if (isSuccessResponse(response)) {
|
|
6552
|
+
sessionStore.transaction = {
|
|
6553
|
+
orderId: response.orderId,
|
|
6554
|
+
type: adjustedTypeForm,
|
|
6555
|
+
url: navigator.href,
|
|
6556
|
+
};
|
|
6557
|
+
navigator.assign(`${adjustedTypeForm}/?formUrl=${encodeURIComponent(response.formUrl)}`);
|
|
6558
|
+
}
|
|
6559
|
+
if (isErrorInResponse(response)) {
|
|
6560
|
+
responseTypeDialog.open({
|
|
6561
|
+
errorCode: response.errorCode,
|
|
6562
|
+
errorMessage: response.errorMessage,
|
|
6563
|
+
});
|
|
6564
|
+
}
|
|
6565
|
+
}, [formType]);
|
|
6566
|
+
};
|
|
6567
|
+
|
|
6495
6568
|
const DEFAULT_TITLE = 'Укажите сумму перевода';
|
|
6496
6569
|
const DEFAULT_LABEL = 'Сумма перевода';
|
|
6497
6570
|
const MAX_AMOUNT = 300000;
|
|
6498
6571
|
const MIN_AMOUNT = 1;
|
|
6499
|
-
const FORM_URL_MAP = {
|
|
6500
|
-
private: 'https://old.rshb.ru/p2p/',
|
|
6501
|
-
business: 'https://old.rshb.ru/smallbusiness/p2p/',
|
|
6502
|
-
};
|
|
6503
6572
|
const INITIAL_FORM_STATE = {
|
|
6504
6573
|
amount: 1500,
|
|
6505
6574
|
};
|
|
6506
6575
|
const CardTransfer = JSX(({ className = '', title = DEFAULT_TITLE, label = DEFAULT_LABEL, button, formType = 'private', ...rest }) => {
|
|
6507
|
-
const [
|
|
6508
|
-
const
|
|
6576
|
+
const [isDisabled, { setValue: setDisabled }] = useBool(false);
|
|
6577
|
+
const handleSubmit = useSubmitCardTransfer(formType);
|
|
6578
|
+
const [{ amount }, { field, onSubmit }] = useForm(INITIAL_FORM_STATE, {
|
|
6579
|
+
onSubmit: handleSubmit,
|
|
6580
|
+
});
|
|
6581
|
+
// TODO: dont set state in useEffect
|
|
6509
6582
|
useEffect(() => {
|
|
6510
6583
|
setDisabled(amount <= 0);
|
|
6511
6584
|
}, [amount]);
|
|
6512
|
-
return (jsxs(BlockWrapper, { className: style('flex flex-col items-center', className), defaultPadding: "p-6xl", ...rest, children: [title ? (jsx(Heading, { className: "pb-lg xl:pb-4xl self-start xl:self-center", headingType: "h3", title: title })) : null, jsxs("form", { className: "w-full xl:max-w-[468px]", method: "POST",
|
|
6585
|
+
return (jsxs(BlockWrapper, { className: style('flex flex-col items-center', className), defaultPadding: "p-6xl", ...rest, children: [title ? (jsx(Heading, { className: "pb-lg xl:pb-4xl self-start xl:self-center", headingType: "h3", title: title })) : null, jsxs("form", { className: "w-full xl:max-w-[468px]", method: "POST", onSubmit: onSubmit, children: [jsx(CurrencyInput, { valid: !isDisabled, label: label, max: MAX_AMOUNT, min: MIN_AMOUNT, ...field('amount', { parse: Number, format: String }) }), jsx("input", { type: "hidden", name: "amount", value: amount }), button?.text ? (jsx(Button, { className: "w-full mt-lg", type: "submit", disabled: isDisabled, children: button.text })) : null] })] }));
|
|
6513
6586
|
});
|
|
6514
6587
|
|
|
6515
6588
|
const ITEMS_GAP = 16;
|
|
@@ -10017,7 +10090,7 @@
|
|
|
10017
10090
|
slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
|
|
10018
10091
|
});
|
|
10019
10092
|
|
|
10020
|
-
const packageVersion = "0.14.
|
|
10093
|
+
const packageVersion = "0.14.745";
|
|
10021
10094
|
|
|
10022
10095
|
exports.Blocks = Blocks;
|
|
10023
10096
|
exports.ContentPage = ContentPage;
|