Files
web-menu-react-version-/src/components/ProSelect/ProSelect.tsx
2025-10-04 18:22:24 +03:00

44 lines
1.1 KiB
TypeScript

import { DownOutlined } from "@ant-design/icons";
import { Select } from "antd";
import { ProSelectProps } from "./types";
export default function ProSelect({
optionList,
valueField = "id",
displayField = "name",
autoComplete,
showDialog,
ref,
defaultOpen = false,
...rest
}: ProSelectProps) {
return (
<>
<Select
listHeight={150}
getPopupContainer={(trigger) => trigger.parentNode} // to fix calender scrolling with page
{...rest}
{...(autoComplete
? { showSearch: true, optionFilterProp: "children" }
: {})}
{...(ref ? { ref } : {})}
onClick={(e) => {
e.preventDefault();
e.stopPropagation();
if (e.detail === 2 && showDialog) {
showDialog();
}
}}
defaultOpen={defaultOpen}
options={optionList?.map((o) => ({
value: o[valueField],
key: o[valueField],
label: o[displayField],
}))}
showSearch
suffixIcon={<DownOutlined style={{ marginRight: 10 }} />}
/>
</>
);
}