UNPKG

ze-react-component-library

Version:
89 lines (77 loc) 2.61 kB
import "antd/es/select/style"; import _Select from "antd/es/select"; import React, { useState, useRef } from "react"; import { getColumnPublicProps } from "../../util"; import { getColumnFilterProps } from "./FilterComponents"; import useLocale from "../../hooks/useLocale"; var PropertyFilter = function PropertyFilter(_a) { var property = _a.property, displayText = _a.displayText, _selectedKeys = _a.selectedKeys, _confirm = _a.confirm, _b = _a.disableReset, disableReset = _b === void 0 ? true : _b; var _c = getColumnPublicProps(property), valueEnum = _c.valueEnum, valueOptions = _c.valueOptions; var filterProps = getColumnFilterProps(property, {}, valueEnum); var _d = useState(_selectedKeys), selectedKeys = _d[0], _setSelectedKeys = _d[1]; var _e = useState(false), open = _e[0], setOpen = _e[1]; var popContainerRef = useRef(null); var t = useLocale().t; return /*#__PURE__*/React.createElement("span", null, displayText, /*#__PURE__*/React.createElement(_Select, { bordered: false, style: { margin: "0 -11px" }, dropdownMatchSelectWidth: false, open: open, onDropdownVisibleChange: function onDropdownVisibleChange(o) { _setSelectedKeys(_selectedKeys); setOpen(o); }, dropdownStyle: { zIndex: 998, overflow: "visible" }, dropdownRender: function dropdownRender() { var _a; return /*#__PURE__*/React.createElement("span", { ref: popContainerRef }, (_a = filterProps.filterDropdown) === null || _a === void 0 ? void 0 : _a.call(filterProps, { confirm: function confirm() { setOpen(false); _confirm === null || _confirm === void 0 ? void 0 : _confirm((selectedKeys === null || selectedKeys === void 0 ? void 0 : selectedKeys.length) > 0 ? selectedKeys : null); }, disableReset: disableReset, reset: function reset() { setOpen(false); _setSelectedKeys([]); _confirm === null || _confirm === void 0 ? void 0 : _confirm(null); }, selectedKeys: selectedKeys, setSelectedKeys: function setSelectedKeys(v) { setOpen(true); _setSelectedKeys(v); }, visible: open, prefixCls: "", getPopupContainer: function getPopupContainer() { return popContainerRef.current; }, filters: valueOptions, t: t })); }, options: [{ value: "1", label: "" }], value: "1" })); }; export default PropertyFilter;