HookModal.js 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. "use strict";
  2. "use client";
  3. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  4. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  5. Object.defineProperty(exports, "__esModule", {
  6. value: true
  7. });
  8. exports.default = void 0;
  9. var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
  10. var React = _interopRequireWildcard(require("react"));
  11. var _configProvider = require("../../config-provider");
  12. var _en_US = _interopRequireDefault(require("../../locale/en_US"));
  13. var _useLocale = _interopRequireDefault(require("../../locale/useLocale"));
  14. var _ConfirmDialog = _interopRequireDefault(require("../ConfirmDialog"));
  15. var __rest = void 0 && (void 0).__rest || function (s, e) {
  16. var t = {};
  17. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
  18. if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
  19. if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
  20. }
  21. return t;
  22. };
  23. const HookModal = (_a, ref) => {
  24. var _b;
  25. var {
  26. afterClose: hookAfterClose,
  27. config
  28. } = _a,
  29. restProps = __rest(_a, ["afterClose", "config"]);
  30. const [open, setOpen] = React.useState(true);
  31. const [innerConfig, setInnerConfig] = React.useState(config);
  32. const {
  33. direction,
  34. getPrefixCls
  35. } = React.useContext(_configProvider.ConfigContext);
  36. const prefixCls = getPrefixCls('modal');
  37. const rootPrefixCls = getPrefixCls();
  38. const afterClose = () => {
  39. var _a;
  40. hookAfterClose();
  41. (_a = innerConfig.afterClose) === null || _a === void 0 ? void 0 : _a.call(innerConfig);
  42. };
  43. const close = (...args) => {
  44. var _a;
  45. setOpen(false);
  46. const triggerCancel = args.some(param => param === null || param === void 0 ? void 0 : param.triggerCancel);
  47. if (triggerCancel) {
  48. var _a2;
  49. (_a = innerConfig.onCancel) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [innerConfig, () => {}].concat((0, _toConsumableArray2.default)(args.slice(1))));
  50. }
  51. };
  52. React.useImperativeHandle(ref, () => ({
  53. destroy: close,
  54. update: newConfig => {
  55. setInnerConfig(originConfig => {
  56. const nextConfig = typeof newConfig === 'function' ? newConfig(originConfig) : newConfig;
  57. return Object.assign(Object.assign({}, originConfig), nextConfig);
  58. });
  59. }
  60. }));
  61. const mergedOkCancel = (_b = innerConfig.okCancel) !== null && _b !== void 0 ? _b : innerConfig.type === 'confirm';
  62. const [contextLocale] = (0, _useLocale.default)('Modal', _en_US.default.Modal);
  63. return /*#__PURE__*/React.createElement(_ConfirmDialog.default, Object.assign({
  64. prefixCls: prefixCls,
  65. rootPrefixCls: rootPrefixCls
  66. }, innerConfig, {
  67. close: close,
  68. open: open,
  69. afterClose: afterClose,
  70. okText: innerConfig.okText || (mergedOkCancel ? contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.okText : contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.justOkText),
  71. direction: innerConfig.direction || direction,
  72. cancelText: innerConfig.cancelText || (contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.cancelText)
  73. }, restProps));
  74. };
  75. var _default = exports.default = /*#__PURE__*/React.forwardRef(HookModal);