import react from "react"; import { Fragment, useState } from "react"; import { Listbox, Transition } from "@headlessui/react"; import { CheckIcon, SelectorIcon } from "@heroicons/react/solid"; export default function AutoCompleteComboBox({ dataSource, selectedone, selectChanged, }) { if (!dataSource) { dataSource = [{ name: "无" }]; } react.useEffect(() => { if (JSON.stringify(dataSource[0]) === JSON.stringify(selected)) { return; } if (selectedone && dataSource.length > 0) { setSelected(dataSource.filter((x) => x.code === selectedone)[0]); } else { setSelected(dataSource[0]); } }, [dataSource, selectedone]); const [selected, setSelected] = useState(dataSource[0]); react.useEffect(() => { selectChanged(selected); }, [selected]); return (
{selected?.name} {dataSource.map((item, itemIdx) => ( `cursor-default select-none relative py-0.5 my-0.5 pl-10 pr-4 ${ active ? "text-amber-900 bg-amber-100" : "text-gray-900" }` } value={item} > {({ selected }) => ( <> {item.name} {selected ? ( ) : null} )} ))}
); }