UNPKG

@aliretail/react-materials-components

Version:
50 lines (45 loc) 1.54 kB
import _Dropdown from "@alifd/next/es/dropdown"; import _Menu from "@alifd/next/es/menu"; import _Button from "@alifd/next/es/button"; /* eslint-disable react/prop-types */ import * as React from 'react'; import classnames from 'classnames'; import { useContext } from "./context"; var LOGIC_MAP = { AND: 'AND', OR: 'OR' }; var TEXT_MAP = { AND: '且', OR: '或' }; /** * 选择 且、或 的按钮 */ var SelectLogic = /*#__PURE__*/React.forwardRef(function (props, ref) { var value = props.value, _props$disabled = props.disabled, disabled = _props$disabled === void 0 ? false : _props$disabled, onChange = props.onChange; var _useContext = useContext(), globalDisabled = _useContext.disabled; var handleItemClick = function handleItemClick(key) { onChange === null || onChange === void 0 ? void 0 : onChange(key); }; return /*#__PURE__*/React.createElement(_Dropdown, { ref: ref, trigger: /*#__PURE__*/React.createElement(_Button, { disabled: disabled || globalDisabled, className: classnames('aliretail-select-logic', !(disabled || globalDisabled) && 'has-corner', 'aliretail-logic-editor-btn') }, TEXT_MAP[value]), triggerType: "click" }, /*#__PURE__*/React.createElement(_Menu, { onItemClick: handleItemClick, selectedKeys: value }, /*#__PURE__*/React.createElement(_Menu.Item, { key: LOGIC_MAP.AND }, TEXT_MAP.AND), /*#__PURE__*/React.createElement(_Menu.Item, { key: LOGIC_MAP.OR }, TEXT_MAP.OR))); }); export default SelectLogic;