UNPKG

@ant-design/x

Version:

Craft AI-driven interfaces effortlessly

51 lines (50 loc) 1.69 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.ActionButton = ActionButton; exports.default = exports.ActionButtonContext = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _antd = require("antd"); var _clsx = require("clsx"); var _react = _interopRequireWildcard(require("react")); const ActionButtonContext = exports.ActionButtonContext = /*#__PURE__*/_react.default.createContext(null); function ActionButton(props, ref) { const { className, action, onClick, ...restProps } = props; const context = (0, _react.useContext)(ActionButtonContext); const { prefixCls, disabled: rootDisabled, setSubmitDisabled } = context; const mergedDisabled = restProps.disabled ?? rootDisabled ?? context[`${action}Disabled`]; (0, _react.useEffect)(() => { if (action === 'onSend') { setSubmitDisabled?.(mergedDisabled); } }, [mergedDisabled, action, setSubmitDisabled]); return /*#__PURE__*/_react.default.createElement(_antd.Button, (0, _extends2.default)({ type: "text" }, restProps, { ref: ref, onClick: e => { if (mergedDisabled) { return; } context[action]?.(); onClick?.(e); }, disabled: mergedDisabled, className: (0, _clsx.clsx)(prefixCls, className, { [`${prefixCls}-disabled`]: mergedDisabled }) })); } var _default = exports.default = /*#__PURE__*/_react.default.forwardRef(ActionButton);