import { Combobox, Transition } from "@headlessui/react"; import React, { Fragment } from "react"; import { useController } from "react-hook-form"; export default function CustomComboBox({ control, name, setValue, containerClassName, valueField, labelField, items, ...restProps }) { const { field, fieldState, formState } = useController({ control, name }); const filteredItems = field.value === "" ? items : items .filter((item) => item[labelField].toLowerCase().replace(/\s+/g, "").includes(field.value.toLowerCase().replace(/\s+/g, ""))) .sort((a, b) => { if (a[labelField].toLowerCase().indexOf(field.value.toLowerCase()) > b[labelField].toLowerCase().indexOf(field.value.toLowerCase())) { return 1; } else if (a[labelField].toLowerCase().indexOf(field.value.toLowerCase()) < b[labelField].toLowerCase().indexOf(field.value.toLowerCase())) { return -1; } else { if (a[labelField] > b[labelField]) return 1; else return -1; } }); return ( 0 ? "py-2 shadow-lg ring-1" : "" }`} > {filteredItems.map((item, idx) => ( {item[labelField]} ))} ); }