shared.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. "use client";
  2. import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
  3. import React from 'react';
  4. import CloseOutlined from "@ant-design/icons/es/icons/CloseOutlined";
  5. import { DisabledContextProvider } from '../config-provider/DisabledContext';
  6. import { useLocale } from '../locale';
  7. import NormalCancelBtn from './components/NormalCancelBtn';
  8. import NormalOkBtn from './components/NormalOkBtn';
  9. import { ModalContextProvider } from './context';
  10. import { getConfirmLocale } from './locale';
  11. export function renderCloseIcon(prefixCls, closeIcon) {
  12. return /*#__PURE__*/React.createElement("span", {
  13. className: `${prefixCls}-close-x`
  14. }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {
  15. className: `${prefixCls}-close-icon`
  16. }));
  17. }
  18. export const Footer = props => {
  19. const {
  20. okText,
  21. okType = 'primary',
  22. cancelText,
  23. confirmLoading,
  24. onOk,
  25. onCancel,
  26. okButtonProps,
  27. cancelButtonProps,
  28. footer
  29. } = props;
  30. const [locale] = useLocale('Modal', getConfirmLocale());
  31. // ================== Locale Text ==================
  32. const okTextLocale = okText || (locale === null || locale === void 0 ? void 0 : locale.okText);
  33. const cancelTextLocale = cancelText || (locale === null || locale === void 0 ? void 0 : locale.cancelText);
  34. // ================= Context Value =================
  35. const btnCtxValue = {
  36. confirmLoading,
  37. okButtonProps,
  38. cancelButtonProps,
  39. okTextLocale,
  40. cancelTextLocale,
  41. okType,
  42. onOk,
  43. onCancel
  44. };
  45. const btnCtxValueMemo = React.useMemo(() => btnCtxValue, _toConsumableArray(Object.values(btnCtxValue)));
  46. let footerNode;
  47. if (typeof footer === 'function' || typeof footer === 'undefined') {
  48. footerNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(NormalCancelBtn, null), /*#__PURE__*/React.createElement(NormalOkBtn, null));
  49. if (typeof footer === 'function') {
  50. footerNode = footer(footerNode, {
  51. OkBtn: NormalOkBtn,
  52. CancelBtn: NormalCancelBtn
  53. });
  54. }
  55. footerNode = /*#__PURE__*/React.createElement(ModalContextProvider, {
  56. value: btnCtxValueMemo
  57. }, footerNode);
  58. } else {
  59. footerNode = footer;
  60. }
  61. return /*#__PURE__*/React.createElement(DisabledContextProvider, {
  62. disabled: false
  63. }, footerNode);
  64. };