linkmore-design
Version:
π πlmη»δ»ΆεΊγπ
72 lines (69 loc) β’ 2.75 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _classnames = _interopRequireDefault(require("classnames"));
var _react = _interopRequireWildcard(require("react"));
var _LocaleReceiver = _interopRequireDefault(require("../../locale-provider/LocaleReceiver"));
var _utils = require("../utils");
var _GhostRender = _interopRequireDefault(require("./GhostRender"));
var _GhostText = _interopRequireDefault(require("./GhostText"));
var _PopDropDown = _interopRequireDefault(require("./PopDropDown"));
const Control = /*#__PURE__*/(0, _react.memo)(props => {
const {
popupClassName,
dropdownRender,
type,
value,
onChange,
className,
size,
style
} = props;
const ghostRef = (0, _react.useRef)(null);
const [visible, setVisible] = (0, _react.useState)(false);
// ζ―ε¦ζηιεΌ/ζ―ε¦ε€δΊηιηΆζ
const active = (0, _react.useMemo)(() => (0, _utils.getIsHas)(value), [value]);
const overlayClassName = (0, _classnames.default)(`filter_dropdown_container_${type}`, popupClassName);
const onOpenChange = v => {
setVisible(v);
props.componentProps?.onVisibleChange?.(v);
// v && ghostRef.current?.focus?.()
};
const handleChange = val => {
onChange?.(val);
setVisible(false);
};
const onCancel = () => setVisible(false);
const overlayRender = () => dropdownRender?.(props) || /*#__PURE__*/_react.default.createElement(_GhostRender.default, (0, _extends2.default)({}, props, {
ref: ghostRef,
onChange: handleChange,
onCancel: onCancel,
visible: visible
}));
return /*#__PURE__*/_react.default.createElement(_PopDropDown.default, {
overlayClassName: overlayClassName,
dropdownRender: overlayRender,
open: visible,
onOpenChange: onOpenChange
}, /*#__PURE__*/_react.default.createElement("div", {
className: (0, _classnames.default)('lm_filter_basic_item', className, size, {
expand: visible,
active
}),
style: style
}, /*#__PURE__*/_react.default.createElement(_GhostText.default, props)));
});
const LocalcControl = props => {
return /*#__PURE__*/_react.default.createElement(_LocaleReceiver.default, {
componentName: "FilterWidget"
}, contextLocale => /*#__PURE__*/_react.default.createElement(Control, (0, _extends2.default)({}, props, {
locale: contextLocale
})));
};
var _default = /*#__PURE__*/(0, _react.memo)(LocalcControl);
exports.default = _default;