import { SelectProps } from "antd/lib/select"; import { QueryObserverResult } from "@tanstack/react-query"; import { useSelect as useSelectCore, BaseRecord, GetManyResponse, GetListResponse, HttpError, UseSelectProps, } from "@pankod/refine-core"; export type UseSelectReturnType = { selectProps: SelectProps<{ value: string; label: string }>; queryResult: QueryObserverResult>; defaultValueQueryResult: QueryObserverResult>; }; /** * `useSelect` hook allows you to manage an Ant Design {@link https://ant.design/components/select/ Select} component when records in a resource needs to be used as select options. * * @see {@link https://refine.dev/docs/api-references/hooks/field/useSelect} for more details. * * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`} * */ export const useSelect = < TData extends BaseRecord = BaseRecord, TError extends HttpError = HttpError, >( props: UseSelectProps, ): UseSelectReturnType => { const { queryResult, defaultValueQueryResult, onSearch, options } = useSelectCore(props); return { selectProps: { options, onSearch, loading: defaultValueQueryResult.isFetching, showSearch: true, filterOption: false, }, queryResult, defaultValueQueryResult, }; };