import { Fragment, useEffect, useState } from "react"; import { Listbox, Transition } from "@headlessui/react"; import { useController } from "react-hook-form"; import { ChevronUpDownIcon } from "@heroicons/react/24/solid"; export default function CustomSelectV2({ control, name, containerClassName, items, labelField, valueField, placeholder, shouldUnregister, ...restProps }) { const { field, fieldState } = useController({ control, name, shouldUnregister: shouldUnregister ?? true }); const [dropdownOpen, setDropdownOpen] = useState(false); const selected = items.find((item) => item[valueField] === (typeof field.value !== "number" ? field.value : +field.value)); const defaultImage = items.find((item) => item["type"] === "1"); return (
{selected ? selected[labelField] : defaultImage === undefined ? placeholder : defaultImage["name"]} setDropdownOpen(true)} afterLeave={() => setDropdownOpen(false)} > {items.map((item, idx) => ( {item[labelField]} ))}
); }