@redneckz/wildless-cms-uni-blocks 0.14.744 → 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.
Files changed (98) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +91 -10
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/CardTransfer/CardTransferContent.d.ts +2 -1
  5. package/bundle/components/CardTransfer/SubmitFailedDialog.d.ts +6 -0
  6. package/bundle/components/CardTransfer/submitCardTransfer.d.ts +16 -0
  7. package/bundle/components/CardTransfer/useSubmitCardTransfer.d.ts +11 -0
  8. package/dist/components/CardTransfer/CardTransfer.js +9 -7
  9. package/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  10. package/dist/components/CardTransfer/CardTransferContent.d.ts +2 -1
  11. package/dist/components/CardTransfer/SubmitFailedDialog.d.ts +6 -0
  12. package/dist/components/CardTransfer/SubmitFailedDialog.js +13 -0
  13. package/dist/components/CardTransfer/SubmitFailedDialog.js.map +1 -0
  14. package/dist/components/CardTransfer/submitCardTransfer.d.ts +16 -0
  15. package/dist/components/CardTransfer/submitCardTransfer.js +44 -0
  16. package/dist/components/CardTransfer/submitCardTransfer.js.map +1 -0
  17. package/dist/components/CardTransfer/useSubmitCardTransfer.d.ts +11 -0
  18. package/dist/components/CardTransfer/useSubmitCardTransfer.js +33 -0
  19. package/dist/components/CardTransfer/useSubmitCardTransfer.js.map +1 -0
  20. package/dist/components/CreditCardForm/getDeliveryCreditCardData.js +2 -1
  21. package/dist/components/CreditCardForm/getDeliveryCreditCardData.js.map +1 -1
  22. package/dist/ui-kit/FormField/getField.js +2 -1
  23. package/dist/ui-kit/FormField/getField.js.map +1 -1
  24. package/lib/common.css +1 -1
  25. package/lib/components/CardTransfer/CardTransfer.fixture.d.ts +2 -1
  26. package/lib/components/CardTransfer/CardTransfer.fixture.mobile.d.ts +2 -1
  27. package/lib/components/CardTransfer/CardTransfer.js +10 -8
  28. package/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  29. package/lib/components/CardTransfer/CardTransferContent.d.ts +2 -1
  30. package/lib/components/CardTransfer/SubmitFailedDialog.d.ts +6 -0
  31. package/lib/components/CardTransfer/SubmitFailedDialog.js +10 -0
  32. package/lib/components/CardTransfer/SubmitFailedDialog.js.map +1 -0
  33. package/lib/components/CardTransfer/submitCardTransfer.d.ts +16 -0
  34. package/lib/components/CardTransfer/submitCardTransfer.js +39 -0
  35. package/lib/components/CardTransfer/submitCardTransfer.js.map +1 -0
  36. package/lib/components/CardTransfer/useSubmitCardTransfer.d.ts +11 -0
  37. package/lib/components/CardTransfer/useSubmitCardTransfer.js +30 -0
  38. package/lib/components/CardTransfer/useSubmitCardTransfer.js.map +1 -0
  39. package/lib/components/CreditCardForm/getDeliveryCreditCardData.js +2 -1
  40. package/lib/components/CreditCardForm/getDeliveryCreditCardData.js.map +1 -1
  41. package/lib/ui-kit/FormField/getField.js +2 -1
  42. package/lib/ui-kit/FormField/getField.js.map +1 -1
  43. package/mobile/bundle/bundle.umd.js +91 -10
  44. package/mobile/bundle/bundle.umd.min.js +1 -1
  45. package/mobile/bundle/components/CardTransfer/CardTransferContent.d.ts +2 -1
  46. package/mobile/bundle/components/CardTransfer/SubmitFailedDialog.d.ts +6 -0
  47. package/mobile/bundle/components/CardTransfer/submitCardTransfer.d.ts +16 -0
  48. package/mobile/bundle/components/CardTransfer/useSubmitCardTransfer.d.ts +11 -0
  49. package/mobile/dist/components/CardTransfer/CardTransfer.js +9 -7
  50. package/mobile/dist/components/CardTransfer/CardTransfer.js.map +1 -1
  51. package/mobile/dist/components/CardTransfer/CardTransferContent.d.ts +2 -1
  52. package/mobile/dist/components/CardTransfer/SubmitFailedDialog.d.ts +6 -0
  53. package/mobile/dist/components/CardTransfer/SubmitFailedDialog.js +13 -0
  54. package/mobile/dist/components/CardTransfer/SubmitFailedDialog.js.map +1 -0
  55. package/mobile/dist/components/CardTransfer/submitCardTransfer.d.ts +16 -0
  56. package/mobile/dist/components/CardTransfer/submitCardTransfer.js +44 -0
  57. package/mobile/dist/components/CardTransfer/submitCardTransfer.js.map +1 -0
  58. package/mobile/dist/components/CardTransfer/useSubmitCardTransfer.d.ts +11 -0
  59. package/mobile/dist/components/CardTransfer/useSubmitCardTransfer.js +33 -0
  60. package/mobile/dist/components/CardTransfer/useSubmitCardTransfer.js.map +1 -0
  61. package/mobile/dist/components/CreditCardForm/getDeliveryCreditCardData.js +2 -1
  62. package/mobile/dist/components/CreditCardForm/getDeliveryCreditCardData.js.map +1 -1
  63. package/mobile/dist/ui-kit/FormField/getField.js +2 -1
  64. package/mobile/dist/ui-kit/FormField/getField.js.map +1 -1
  65. package/mobile/lib/common.css +1 -1
  66. package/mobile/lib/components/CardTransfer/CardTransfer.js +10 -8
  67. package/mobile/lib/components/CardTransfer/CardTransfer.js.map +1 -1
  68. package/mobile/lib/components/CardTransfer/CardTransferContent.d.ts +2 -1
  69. package/mobile/lib/components/CardTransfer/SubmitFailedDialog.d.ts +6 -0
  70. package/mobile/lib/components/CardTransfer/SubmitFailedDialog.js +10 -0
  71. package/mobile/lib/components/CardTransfer/SubmitFailedDialog.js.map +1 -0
  72. package/mobile/lib/components/CardTransfer/submitCardTransfer.d.ts +16 -0
  73. package/mobile/lib/components/CardTransfer/submitCardTransfer.js +39 -0
  74. package/mobile/lib/components/CardTransfer/submitCardTransfer.js.map +1 -0
  75. package/mobile/lib/components/CardTransfer/useSubmitCardTransfer.d.ts +11 -0
  76. package/mobile/lib/components/CardTransfer/useSubmitCardTransfer.js +30 -0
  77. package/mobile/lib/components/CardTransfer/useSubmitCardTransfer.js.map +1 -0
  78. package/mobile/lib/components/CreditCardForm/getDeliveryCreditCardData.js +2 -1
  79. package/mobile/lib/components/CreditCardForm/getDeliveryCreditCardData.js.map +1 -1
  80. package/mobile/lib/ui-kit/FormField/getField.js +2 -1
  81. package/mobile/lib/ui-kit/FormField/getField.js.map +1 -1
  82. package/mobile/src/components/CardTransfer/CardTransfer.tsx +12 -9
  83. package/mobile/src/components/CardTransfer/CardTransferContent.ts +3 -1
  84. package/mobile/src/components/CardTransfer/SubmitFailedDialog.tsx +42 -0
  85. package/mobile/src/components/CardTransfer/submitCardTransfer.ts +72 -0
  86. package/mobile/src/components/CardTransfer/useSubmitCardTransfer.tsx +47 -0
  87. package/mobile/src/components/CreditCardForm/getDeliveryCreditCardData.ts +2 -1
  88. package/mobile/src/ui-kit/FormField/getField.tsx +7 -5
  89. package/package.json +1 -1
  90. package/src/components/CardTransfer/CardTransfer.fixture.mobile.tsx +11 -3
  91. package/src/components/CardTransfer/CardTransfer.fixture.tsx +13 -1
  92. package/src/components/CardTransfer/CardTransfer.tsx +12 -9
  93. package/src/components/CardTransfer/CardTransferContent.ts +3 -1
  94. package/src/components/CardTransfer/SubmitFailedDialog.tsx +42 -0
  95. package/src/components/CardTransfer/submitCardTransfer.ts +72 -0
  96. package/src/components/CardTransfer/useSubmitCardTransfer.tsx +47 -0
  97. package/src/components/CreditCardForm/getDeliveryCreditCardData.ts +2 -1
  98. package/src/ui-kit/FormField/getField.tsx +7 -5
@@ -2809,7 +2809,8 @@
2809
2809
  ...InputsMap$1,
2810
2810
  ...externalInputs,
2811
2811
  };
2812
- return (shouldRenderField({ input, field }) && (jsx("div", { children: fieldsRegister[String(input.name)]?.({ field, input, params }) }, i)));
2812
+ const Component = fieldsRegister[String(input.name)];
2813
+ return shouldRenderField({ input, field }) && Component ? (jsx("div", { children: jsx(Component, { field: field, input: input, params: params }) }, i)) : null;
2813
2814
  };
2814
2815
 
2815
2816
  const inputColumnStyles = (column) => column === 2 ? '@xl:grid-cols-2' : '';
@@ -6495,24 +6496,97 @@
6495
6496
 
6496
6497
  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" }) }) })));
6497
6498
 
6499
+ const sessionStore = new Store(); // sessionStorage cache
6500
+ replicate(sessionStore, new StorageAdapter(globalThis?.sessionStorage));
6501
+ function useSessionStore() {
6502
+ return useStore(sessionStore);
6503
+ }
6504
+
6505
+ const paymentURLMap = {
6506
+ private: 'p2p/registerP2P',
6507
+ business: 'b2c/registerB2C',
6508
+ };
6509
+ const SUCCESS_URL = '/p2p/success';
6510
+ const FAIL_URL = '/p2p/success';
6511
+ const CURRENCY_CODE = '643';
6512
+ const LANGUAGE = 'ru';
6513
+ const submitCardTransfer = async (typeForm, amount) => {
6514
+ const navigator = locationNavigator();
6515
+ const submitBody = {
6516
+ amount: String(amount),
6517
+ currency: CURRENCY_CODE,
6518
+ returnUrl: `${navigator.origin}${SUCCESS_URL}`,
6519
+ failUrl: `${navigator.origin}${FAIL_URL}`,
6520
+ language: LANGUAGE,
6521
+ };
6522
+ const url = `${API_BASE_URI}/payment/${paymentURLMap[typeForm]}`;
6523
+ try {
6524
+ const res = await fetch(url, {
6525
+ method: 'POST',
6526
+ headers: { 'Content-Type': 'application/json' },
6527
+ mode: 'cors',
6528
+ body: JSON.stringify(submitBody),
6529
+ });
6530
+ if (!res.ok) {
6531
+ return null;
6532
+ }
6533
+ return await res.json();
6534
+ }
6535
+ catch (ex) {
6536
+ return null;
6537
+ }
6538
+ };
6539
+ const isSuccessResponse = (response) => Boolean(response?.formUrl) && Boolean(response?.orderId);
6540
+ const isErrorInResponse = (response) => Boolean(response?.errorMessage) && response?.errorCode !== 0;
6541
+
6542
+ const FAILED_TITLE = 'Ошибка перевода';
6543
+ const SubmitFailedDialog = ({ onClose, errorCode, errorMessage, }) => {
6544
+ const description = errorCode ? `Код ошибки - ${errorCode}` : 'Пожалуйста, повторите позднее';
6545
+ 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] }) }));
6546
+ };
6547
+
6548
+ const useSubmitCardTransfer = (formType) => {
6549
+ const responseTypeDialog = useDialog(SubmitFailedDialog);
6550
+ const sessionStore = useSessionStore();
6551
+ const navigator = locationNavigator();
6552
+ const adjustedTypeForm = formType === 'private' ? 'p2p' : 'b2c';
6553
+ return useCallback(async ({ amount }) => {
6554
+ const response = await submitCardTransfer(formType, amount);
6555
+ if (isSuccessResponse(response)) {
6556
+ sessionStore.transaction = {
6557
+ orderId: response.orderId,
6558
+ type: adjustedTypeForm,
6559
+ url: navigator.href,
6560
+ };
6561
+ navigator.assign(`${adjustedTypeForm}/?formUrl=${encodeURIComponent(response.formUrl)}`);
6562
+ }
6563
+ if (isErrorInResponse(response)) {
6564
+ responseTypeDialog.open({
6565
+ errorCode: response.errorCode,
6566
+ errorMessage: response.errorMessage,
6567
+ });
6568
+ }
6569
+ }, [formType]);
6570
+ };
6571
+
6498
6572
  const DEFAULT_TITLE = 'Укажите сумму перевода';
6499
6573
  const DEFAULT_LABEL = 'Сумма перевода';
6500
6574
  const MAX_AMOUNT = 300000;
6501
6575
  const MIN_AMOUNT = 1;
6502
- const FORM_URL_MAP = {
6503
- private: 'https://old.rshb.ru/p2p/',
6504
- business: 'https://old.rshb.ru/smallbusiness/p2p/',
6505
- };
6506
6576
  const INITIAL_FORM_STATE = {
6507
6577
  amount: 1500,
6508
6578
  };
6509
6579
  const CardTransfer = JSX(({ className = '', title = DEFAULT_TITLE, label = DEFAULT_LABEL, button, formType = 'private', ...rest }) => {
6510
- const [{ amount }, { field }] = useForm(INITIAL_FORM_STATE);
6511
- const [isDisabled, setDisabled] = useState(false);
6580
+ const [isDisabled, { setValue: setDisabled }] = useBool(false);
6581
+ const handleSubmit = useSubmitCardTransfer(formType);
6582
+ const [{ amount }, { field, onSubmit }] = useForm(INITIAL_FORM_STATE, {
6583
+ onSubmit: handleSubmit,
6584
+ });
6585
+ // TODO: dont set state in useEffect
6512
6586
  useEffect(() => {
6513
6587
  setDisabled(amount <= 0);
6514
6588
  }, [amount]);
6515
- 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", action: FORM_URL_MAP[formType], 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] })] }));
6589
+ 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] })] }));
6516
6590
  });
6517
6591
 
6518
6592
  const ITEMS_GAP = 16;
@@ -7051,13 +7125,20 @@
7051
7125
  };
7052
7126
  };
7053
7127
 
7128
+ const dateToISO = (date) => {
7129
+ if (!date) {
7130
+ return '';
7131
+ }
7132
+ return new Date(date).toISOString().split('.')[0];
7133
+ };
7134
+
7054
7135
  const getDeliveryData = (formData) => {
7055
7136
  const { methodObtain, deliveryDate = '' } = formData;
7056
7137
  const isCourierDelivery = methodObtain === 'courier';
7057
7138
  return isCourierDelivery
7058
7139
  ? {
7059
7140
  courierDeliveryFlg: isCourierDelivery,
7060
- deliveryDate: deliveryDate.toString().replace(/(GMT)[+-]\d{4}/, 'GMT+0000'),
7141
+ deliveryDate: dateToISO(deliveryDate.toString().replace(/(GMT)[+-]\d{4}/, 'GMT+0000')),
7061
7142
  deliveryTimeCd: { value: 'TIME_2' },
7062
7143
  //TODO временный хардкод для тестирования, не забыть удалить
7063
7144
  office: { id: '3' },
@@ -10386,7 +10467,7 @@
10386
10467
  slots: () => [HEADER_SLOT, FOOTER_SLOT, STICKY_FOOTER_SLOT],
10387
10468
  });
10388
10469
 
10389
- const packageVersion = "0.14.743";
10470
+ const packageVersion = "0.14.745";
10390
10471
 
10391
10472
  exports.Blocks = Blocks;
10392
10473
  exports.ContentPage = ContentPage;