@redneckz/wildless-cms-uni-blocks 0.14.37 → 0.14.39

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 (40) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +24 -3
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/ui-kit/Button/ButtonContent.d.ts +1 -0
  5. package/bundle/ui-kit/Button/useFormSubmit.d.ts +3 -0
  6. package/dist/ui-kit/Button/Button.js +4 -2
  7. package/dist/ui-kit/Button/Button.js.map +1 -1
  8. package/dist/ui-kit/Button/ButtonContent.d.ts +1 -0
  9. package/dist/ui-kit/Button/useFormSubmit.d.ts +3 -0
  10. package/dist/ui-kit/Button/useFormSubmit.js +24 -0
  11. package/dist/ui-kit/Button/useFormSubmit.js.map +1 -0
  12. package/lib/ui-kit/Button/Button.js +4 -2
  13. package/lib/ui-kit/Button/Button.js.map +1 -1
  14. package/lib/ui-kit/Button/ButtonContent.d.ts +1 -0
  15. package/lib/ui-kit/Button/useFormSubmit.d.ts +3 -0
  16. package/lib/ui-kit/Button/useFormSubmit.js +21 -0
  17. package/lib/ui-kit/Button/useFormSubmit.js.map +1 -0
  18. package/mobile/bundle/bundle.umd.js +24 -3
  19. package/mobile/bundle/bundle.umd.min.js +1 -1
  20. package/mobile/bundle/ui-kit/Button/ButtonContent.d.ts +1 -0
  21. package/mobile/bundle/ui-kit/Button/useFormSubmit.d.ts +3 -0
  22. package/mobile/dist/ui-kit/Button/Button.js +4 -2
  23. package/mobile/dist/ui-kit/Button/Button.js.map +1 -1
  24. package/mobile/dist/ui-kit/Button/ButtonContent.d.ts +1 -0
  25. package/mobile/dist/ui-kit/Button/useFormSubmit.d.ts +3 -0
  26. package/mobile/dist/ui-kit/Button/useFormSubmit.js +24 -0
  27. package/mobile/dist/ui-kit/Button/useFormSubmit.js.map +1 -0
  28. package/mobile/lib/ui-kit/Button/Button.js +4 -2
  29. package/mobile/lib/ui-kit/Button/Button.js.map +1 -1
  30. package/mobile/lib/ui-kit/Button/ButtonContent.d.ts +1 -0
  31. package/mobile/lib/ui-kit/Button/useFormSubmit.d.ts +3 -0
  32. package/mobile/lib/ui-kit/Button/useFormSubmit.js +21 -0
  33. package/mobile/lib/ui-kit/Button/useFormSubmit.js.map +1 -0
  34. package/mobile/src/ui-kit/Button/Button.tsx +5 -2
  35. package/mobile/src/ui-kit/Button/ButtonContent.ts +1 -0
  36. package/mobile/src/ui-kit/Button/useFormSubmit.ts +30 -0
  37. package/package.json +1 -1
  38. package/src/ui-kit/Button/Button.tsx +5 -2
  39. package/src/ui-kit/Button/ButtonContent.ts +1 -0
  40. package/src/ui-kit/Button/useFormSubmit.ts +30 -0
@@ -3,6 +3,7 @@ import { type LinkProps } from '../../model/LinkProps';
3
3
  import { type Picture } from '../../model/Picture';
4
4
  export interface ButtonCommonContent extends LinkProps {
5
5
  version?: ButtonVersion;
6
+ method?: 'LINK' | 'POST';
6
7
  }
7
8
  /**
8
9
  * @title Кнопка
@@ -0,0 +1,3 @@
1
+ import { type PreventableEvent } from '../PreventableEvent';
2
+ import { type ButtonCommonContent } from './ButtonContent';
3
+ export declare const useFormSubmit: ({ method, href }: ButtonCommonContent) => (ev: PreventableEvent) => void;
@@ -6,9 +6,11 @@ const useLink_1 = require("../../hooks/useLink");
6
6
  const ButtonInner_1 = require("./ButtonInner");
7
7
  const getDisabledButtonClasses_1 = require("./getDisabledButtonClasses");
8
8
  const getRegularButtonClasses_1 = require("./getRegularButtonClasses");
9
- exports.Button = (0, uni_jsx_1.JSX)(({ disabled, children, ...rest }) => {
9
+ const useFormSubmit_1 = require("./useFormSubmit");
10
+ exports.Button = (0, uni_jsx_1.JSX)(({ disabled, children, method = 'LINK', href, ...rest }) => {
11
+ const handleFormSubmit = (0, useFormSubmit_1.useFormSubmit)({ method, href });
10
12
  const link = (0, useLink_1.useLink)();
11
- const adjustedProps = link(rest);
13
+ const adjustedProps = link({ onClick: handleFormSubmit, href, ...rest });
12
14
  const buttonInner = children ?? (0, jsx_runtime_1.jsx)(ButtonInner_1.ButtonInner, { ...adjustedProps });
13
15
  return disabled ? ((0, jsx_runtime_1.jsx)(DisabledButton, { ...adjustedProps, children: buttonInner })) : ((0, jsx_runtime_1.jsx)(RegularButton, { ...adjustedProps, children: buttonInner }));
14
16
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/ui-kit/Button/Button.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,iDAA8C;AAC9C,+CAA4C;AAE5C,yEAAsE;AACtE,uEAAoE;AAEvD,QAAA,MAAM,GAAG,IAAA,aAAG,EAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACzE,MAAM,IAAI,GAAG,IAAA,iBAAO,GAAE,CAAC;IACvB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,QAAQ,IAAI,uBAAC,yBAAW,OAAK,aAAa,GAAI,CAAC;IAEnE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,uBAAC,cAAc,OAAK,aAAa,YAAG,WAAW,GAAkB,CAClE,CAAC,CAAC,CAAC,CACF,uBAAC,aAAa,OAAK,aAAa,YAAG,WAAW,GAAiB,CAChE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,IAAA,aAAG,EACvB,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzF,8BACE,SAAS,EAAE,IAAA,iDAAuB,EAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EACnE,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,gBACF,SAAS,EACrB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAC9B,OAAO,EAAE,OAAO,YAEf,QAAQ,GACP,CACL,CACF,CAAC;AAEF,MAAM,cAAc,GAAG,IAAA,aAAG,EAAc,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAChG,gCACE,IAAI,EAAC,QAAQ,mBACC,MAAM,gBACR,SAAS,EACrB,QAAQ,EAAE,CAAC,CAAC,EACZ,SAAS,EAAE,IAAA,mDAAwB,EAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,YAEnE,QAAQ,GACL,CACP,CAAC,CAAC"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/ui-kit/Button/Button.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,iDAA8C;AAC9C,+CAA4C;AAE5C,yEAAsE;AACtE,uEAAoE;AACpE,mDAAgD;AAEnC,QAAA,MAAM,GAAG,IAAA,aAAG,EAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAChG,MAAM,gBAAgB,GAAG,IAAA,6BAAa,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,IAAA,iBAAO,GAAE,CAAC;IACvB,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,QAAQ,IAAI,uBAAC,yBAAW,OAAK,aAAa,GAAI,CAAC;IAEnE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,uBAAC,cAAc,OAAK,aAAa,YAAG,WAAW,GAAkB,CAClE,CAAC,CAAC,CAAC,CACF,uBAAC,aAAa,OAAK,aAAa,YAAG,WAAW,GAAiB,CAChE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,IAAA,aAAG,EACvB,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzF,8BACE,SAAS,EAAE,IAAA,iDAAuB,EAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EACnE,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,gBACF,SAAS,EACrB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAC9B,OAAO,EAAE,OAAO,YAEf,QAAQ,GACP,CACL,CACF,CAAC;AAEF,MAAM,cAAc,GAAG,IAAA,aAAG,EAAc,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAChG,gCACE,IAAI,EAAC,QAAQ,mBACC,MAAM,gBACR,SAAS,EACrB,QAAQ,EAAE,CAAC,CAAC,EACZ,SAAS,EAAE,IAAA,mDAAwB,EAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,YAEnE,QAAQ,GACL,CACP,CAAC,CAAC"}
@@ -3,6 +3,7 @@ import { type LinkProps } from '../../model/LinkProps';
3
3
  import { type Picture } from '../../model/Picture';
4
4
  export interface ButtonCommonContent extends LinkProps {
5
5
  version?: ButtonVersion;
6
+ method?: 'LINK' | 'POST';
6
7
  }
7
8
  /**
8
9
  * @title Кнопка
@@ -0,0 +1,3 @@
1
+ import { type PreventableEvent } from '../PreventableEvent';
2
+ import { type ButtonCommonContent } from './ButtonContent';
3
+ export declare const useFormSubmit: ({ method, href }: ButtonCommonContent) => (ev: PreventableEvent) => void;
@@ -0,0 +1,24 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.useFormSubmit = void 0;
3
+ const hooks_1 = require("@redneckz/uni-jsx/lib/hooks");
4
+ const useFormSubmit = ({ method, href }) => (0, hooks_1.useCallback)((ev) => {
5
+ if (method !== 'POST' || !href) {
6
+ return;
7
+ }
8
+ ev.preventDefault();
9
+ const { origin, pathname, searchParams } = new URL(href || '');
10
+ const form = document.createElement('form');
11
+ form.setAttribute('method', 'POST');
12
+ form.setAttribute('action', [origin, pathname].join(''));
13
+ for (const [key, value] of searchParams.entries()) {
14
+ const input = document.createElement('input');
15
+ input.setAttribute('type', 'hidden');
16
+ input.setAttribute('name', key);
17
+ input.setAttribute('value', value);
18
+ form.appendChild(input);
19
+ }
20
+ document.body.appendChild(form);
21
+ form.submit();
22
+ }, []);
23
+ exports.useFormSubmit = useFormSubmit;
24
+ //# sourceMappingURL=useFormSubmit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFormSubmit.js","sourceRoot":"","sources":["../../../src/ui-kit/Button/useFormSubmit.ts"],"names":[],"mappings":";;AAAA,uDAA0D;AAInD,MAAM,aAAa,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAuB,EAAE,EAAE,CACrE,IAAA,mBAAW,EAAC,CAAC,EAAoB,EAAE,EAAE;IACnC,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,IAAI,EAAE;QAC9B,OAAO;KACR;IAED,EAAE,CAAC,cAAc,EAAE,CAAC;IAEpB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAE5C,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE;QACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACzB;IAED,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,CAAC,EAAE,EAAE,CAAC,CAAC;AAzBI,QAAA,aAAa,iBAyBjB"}
@@ -4,9 +4,11 @@ import { useLink } from '../../hooks/useLink.js';
4
4
  import { ButtonInner } from './ButtonInner.js';
5
5
  import { getDisabledButtonClasses } from './getDisabledButtonClasses.js';
6
6
  import { getRegularButtonClasses } from './getRegularButtonClasses.js';
7
- export const Button = JSX(({ disabled, children, ...rest }) => {
7
+ import { useFormSubmit } from './useFormSubmit.js';
8
+ export const Button = JSX(({ disabled, children, method = 'LINK', href, ...rest }) => {
9
+ const handleFormSubmit = useFormSubmit({ method, href });
8
10
  const link = useLink();
9
- const adjustedProps = link(rest);
11
+ const adjustedProps = link({ onClick: handleFormSubmit, href, ...rest });
10
12
  const buttonInner = children ?? _jsx(ButtonInner, { ...adjustedProps });
11
13
  return disabled ? (_jsx(DisabledButton, { ...adjustedProps, children: buttonInner })) : (_jsx(RegularButton, { ...adjustedProps, children: buttonInner }));
12
14
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/ui-kit/Button/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACzE,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,QAAQ,IAAI,KAAC,WAAW,OAAK,aAAa,GAAI,CAAC;IAEnE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,KAAC,cAAc,OAAK,aAAa,YAAG,WAAW,GAAkB,CAClE,CAAC,CAAC,CAAC,CACF,KAAC,aAAa,OAAK,aAAa,YAAG,WAAW,GAAiB,CAChE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,GAAG,CACvB,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzF,YACE,SAAS,EAAE,uBAAuB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EACnE,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,gBACF,SAAS,EACrB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAC9B,OAAO,EAAE,OAAO,YAEf,QAAQ,GACP,CACL,CACF,CAAC;AAEF,MAAM,cAAc,GAAG,GAAG,CAAc,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAChG,cACE,IAAI,EAAC,QAAQ,mBACC,MAAM,gBACR,SAAS,EACrB,QAAQ,EAAE,CAAC,CAAC,EACZ,SAAS,EAAE,wBAAwB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,YAEnE,QAAQ,GACL,CACP,CAAC,CAAC"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/ui-kit/Button/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAChG,MAAM,gBAAgB,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,QAAQ,IAAI,KAAC,WAAW,OAAK,aAAa,GAAI,CAAC;IAEnE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,KAAC,cAAc,OAAK,aAAa,YAAG,WAAW,GAAkB,CAClE,CAAC,CAAC,CAAC,CACF,KAAC,aAAa,OAAK,aAAa,YAAG,WAAW,GAAiB,CAChE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,GAAG,CACvB,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACzF,YACE,SAAS,EAAE,uBAAuB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EACnE,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,gBACF,SAAS,EACrB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAC9B,OAAO,EAAE,OAAO,YAEf,QAAQ,GACP,CACL,CACF,CAAC;AAEF,MAAM,cAAc,GAAG,GAAG,CAAc,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAChG,cACE,IAAI,EAAC,QAAQ,mBACC,MAAM,gBACR,SAAS,EACrB,QAAQ,EAAE,CAAC,CAAC,EACZ,SAAS,EAAE,wBAAwB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,YAEnE,QAAQ,GACL,CACP,CAAC,CAAC"}
@@ -3,6 +3,7 @@ import { type LinkProps } from '../../model/LinkProps';
3
3
  import { type Picture } from '../../model/Picture';
4
4
  export interface ButtonCommonContent extends LinkProps {
5
5
  version?: ButtonVersion;
6
+ method?: 'LINK' | 'POST';
6
7
  }
7
8
  /**
8
9
  * @title Кнопка
@@ -0,0 +1,3 @@
1
+ import { type PreventableEvent } from '../PreventableEvent';
2
+ import { type ButtonCommonContent } from './ButtonContent';
3
+ export declare const useFormSubmit: ({ method, href }: ButtonCommonContent) => (ev: PreventableEvent) => void;
@@ -0,0 +1,21 @@
1
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
2
+ export const useFormSubmit = ({ method, href }) => useCallback((ev) => {
3
+ if (method !== 'POST' || !href) {
4
+ return;
5
+ }
6
+ ev.preventDefault();
7
+ const { origin, pathname, searchParams } = new URL(href || '');
8
+ const form = document.createElement('form');
9
+ form.setAttribute('method', 'POST');
10
+ form.setAttribute('action', [origin, pathname].join(''));
11
+ for (const [key, value] of searchParams.entries()) {
12
+ const input = document.createElement('input');
13
+ input.setAttribute('type', 'hidden');
14
+ input.setAttribute('name', key);
15
+ input.setAttribute('value', value);
16
+ form.appendChild(input);
17
+ }
18
+ document.body.appendChild(form);
19
+ form.submit();
20
+ }, []);
21
+ //# sourceMappingURL=useFormSubmit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFormSubmit.js","sourceRoot":"","sources":["../../../src/ui-kit/Button/useFormSubmit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAI1D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAuB,EAAE,EAAE,CACrE,WAAW,CAAC,CAAC,EAAoB,EAAE,EAAE;IACnC,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,IAAI,EAAE;QAC9B,OAAO;KACR;IAED,EAAE,CAAC,cAAc,EAAE,CAAC;IAEpB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAE5C,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE;QACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACzB;IAED,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,CAAC,EAAE,EAAE,CAAC,CAAC"}
@@ -4,10 +4,13 @@ import { ButtonInner } from './ButtonInner';
4
4
  import { type ButtonProps } from './ButtonProps';
5
5
  import { getDisabledButtonClasses } from './getDisabledButtonClasses';
6
6
  import { getRegularButtonClasses } from './getRegularButtonClasses';
7
+ import { useFormSubmit } from './useFormSubmit';
8
+
9
+ export const Button = JSX<ButtonProps>(({ disabled, children, method = 'LINK', href, ...rest }) => {
10
+ const handleFormSubmit = useFormSubmit({ method, href });
7
11
 
8
- export const Button = JSX<ButtonProps>(({ disabled, children, ...rest }) => {
9
12
  const link = useLink();
10
- const adjustedProps = link(rest);
13
+ const adjustedProps = link({ onClick: handleFormSubmit, href, ...rest });
11
14
  const buttonInner = children ?? <ButtonInner {...adjustedProps} />;
12
15
 
13
16
  return disabled ? (
@@ -4,6 +4,7 @@ import { type Picture } from '../../model/Picture';
4
4
 
5
5
  export interface ButtonCommonContent extends LinkProps {
6
6
  version?: ButtonVersion;
7
+ method?: 'LINK' | 'POST';
7
8
  }
8
9
 
9
10
  /**
@@ -0,0 +1,30 @@
1
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { type PreventableEvent } from '../PreventableEvent';
3
+ import { type ButtonCommonContent } from './ButtonContent';
4
+
5
+ export const useFormSubmit = ({ method, href }: ButtonCommonContent) =>
6
+ useCallback((ev: PreventableEvent) => {
7
+ if (method !== 'POST' || !href) {
8
+ return;
9
+ }
10
+
11
+ ev.preventDefault();
12
+
13
+ const { origin, pathname, searchParams } = new URL(href || '');
14
+ const form = document.createElement('form');
15
+
16
+ form.setAttribute('method', 'POST');
17
+ form.setAttribute('action', [origin, pathname].join(''));
18
+
19
+ for (const [key, value] of searchParams.entries()) {
20
+ const input = document.createElement('input');
21
+ input.setAttribute('type', 'hidden');
22
+ input.setAttribute('name', key);
23
+ input.setAttribute('value', value);
24
+ form.appendChild(input);
25
+ }
26
+
27
+ document.body.appendChild(form);
28
+
29
+ form.submit();
30
+ }, []);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.14.37",
3
+ "version": "0.14.39",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -4,10 +4,13 @@ import { ButtonInner } from './ButtonInner';
4
4
  import { type ButtonProps } from './ButtonProps';
5
5
  import { getDisabledButtonClasses } from './getDisabledButtonClasses';
6
6
  import { getRegularButtonClasses } from './getRegularButtonClasses';
7
+ import { useFormSubmit } from './useFormSubmit';
8
+
9
+ export const Button = JSX<ButtonProps>(({ disabled, children, method = 'LINK', href, ...rest }) => {
10
+ const handleFormSubmit = useFormSubmit({ method, href });
7
11
 
8
- export const Button = JSX<ButtonProps>(({ disabled, children, ...rest }) => {
9
12
  const link = useLink();
10
- const adjustedProps = link(rest);
13
+ const adjustedProps = link({ onClick: handleFormSubmit, href, ...rest });
11
14
  const buttonInner = children ?? <ButtonInner {...adjustedProps} />;
12
15
 
13
16
  return disabled ? (
@@ -4,6 +4,7 @@ import { type Picture } from '../../model/Picture';
4
4
 
5
5
  export interface ButtonCommonContent extends LinkProps {
6
6
  version?: ButtonVersion;
7
+ method?: 'LINK' | 'POST';
7
8
  }
8
9
 
9
10
  /**
@@ -0,0 +1,30 @@
1
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { type PreventableEvent } from '../PreventableEvent';
3
+ import { type ButtonCommonContent } from './ButtonContent';
4
+
5
+ export const useFormSubmit = ({ method, href }: ButtonCommonContent) =>
6
+ useCallback((ev: PreventableEvent) => {
7
+ if (method !== 'POST' || !href) {
8
+ return;
9
+ }
10
+
11
+ ev.preventDefault();
12
+
13
+ const { origin, pathname, searchParams } = new URL(href || '');
14
+ const form = document.createElement('form');
15
+
16
+ form.setAttribute('method', 'POST');
17
+ form.setAttribute('action', [origin, pathname].join(''));
18
+
19
+ for (const [key, value] of searchParams.entries()) {
20
+ const input = document.createElement('input');
21
+ input.setAttribute('type', 'hidden');
22
+ input.setAttribute('name', key);
23
+ input.setAttribute('value', value);
24
+ form.appendChild(input);
25
+ }
26
+
27
+ document.body.appendChild(form);
28
+
29
+ form.submit();
30
+ }, []);