import { Combobox } from "@headlessui/react";
import { DropDownItem } from "@shared/nej-react-components/Parts/DropDown";
import { useEffect, useState } from "react";
import tw, { styled } from "twin.macro";
import "styled-components/macro";
import { useField } from "@shared/nej-react-components/Parts/Input";
export function AutocompleteSelect({ title, titleProps = null, data, nullable = false, ...props }) {
const [field, meta, helpers] = useField(props);
const [query, setQuery] = useState(field.value ?? "");
const [internalData, setInternalData] = useState([]);
useEffect(() => {
(async () => {
if (typeof data === "function") {
//if data is async function await it
setInternalData(await data(query));
} else if (Array.isArray(data)) {
setInternalData(
query === ""
? data
: data.filter((item) => {
if (typeof item === "string")
return item.toLowerCase().includes(query.toLowerCase());
return item.label.toLowerCase().includes(query.toLowerCase());
})
);
} else {
console.error("data is not an array or function :c");
setInternalData([]);
}
})();
}, [query, data]);
return (
<>