UNPKG

linkmore-design

Version:

🌈 πŸš€lmη»„δ»ΆεΊ“γ€‚πŸš€

74 lines (72 loc) β€’ 2.91 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import cn from 'classnames'; import React, { memo, useMemo, useRef, useState } from 'react'; import LocaleReceiver from "../../locale-provider/LocaleReceiver"; import { getIsHas } from "../utils"; import GhostRender from "./GhostRender"; import GhostText from "./GhostText"; import PopDropDown from "./PopDropDown"; var Control = /*#__PURE__*/memo(function (props) { var popupClassName = props.popupClassName, dropdownRender = props.dropdownRender, type = props.type, value = props.value, onChange = props.onChange, className = props.className, size = props.size, style = props.style; var ghostRef = useRef(null); var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), visible = _useState2[0], setVisible = _useState2[1]; // ζ˜―ε¦ζœ‰η­›ι€‰ε€Ό/ζ˜―ε¦ε€„δΊŽη­›ι€‰ηŠΆζ€ var active = useMemo(function () { return getIsHas(value); }, [value]); var overlayClassName = cn("filter_dropdown_container_".concat(type), popupClassName); var onOpenChange = function onOpenChange(v) { var _props$componentProps, _props$componentProps2; setVisible(v); (_props$componentProps = props.componentProps) === null || _props$componentProps === void 0 ? void 0 : (_props$componentProps2 = _props$componentProps.onVisibleChange) === null || _props$componentProps2 === void 0 ? void 0 : _props$componentProps2.call(_props$componentProps, v); // v && ghostRef.current?.focus?.() }; var handleChange = function handleChange(val) { onChange === null || onChange === void 0 ? void 0 : onChange(val); setVisible(false); }; var onCancel = function onCancel() { return setVisible(false); }; var overlayRender = function overlayRender() { return (dropdownRender === null || dropdownRender === void 0 ? void 0 : dropdownRender(props)) || /*#__PURE__*/React.createElement(GhostRender, _extends({}, props, { ref: ghostRef, onChange: handleChange, onCancel: onCancel, visible: visible })); }; return /*#__PURE__*/React.createElement(PopDropDown, { overlayClassName: overlayClassName, dropdownRender: overlayRender, open: visible, onOpenChange: onOpenChange }, /*#__PURE__*/React.createElement("div", { className: cn('lm_filter_basic_item', className, size, { expand: visible, active: active }), style: style }, /*#__PURE__*/React.createElement(GhostText, props))); }); var LocalcControl = function LocalcControl(props) { return /*#__PURE__*/React.createElement(LocaleReceiver, { componentName: "FilterWidget" }, function (contextLocale) { return /*#__PURE__*/React.createElement(Control, _extends({}, props, { locale: contextLocale })); }); }; export default /*#__PURE__*/memo(LocalcControl);