@cerberus-design/react
Version:
The Cerberus Design React component library.
38 lines (36 loc) • 1.03 kB
JavaScript
import {
createSelectCollection
} from "./chunk-LOJBIVY4.js";
// src/components/combobox/use-stateful-collection.ts
import { useCallback, useMemo, useState } from "react";
function useStatefulCollection(initialItems = []) {
const [items, setItems] = useState(initialItems);
const [filterValue, setFilterValue] = useState([]);
const collection = useMemo(() => createSelectCollection(items), [items]);
const handleInputChange = useCallback(
(details) => {
if (details.inputValue === "") {
return setItems(initialItems);
}
setItems(
(prev) => prev.filter(
(item) => item.value.includes(details.inputValue.toLowerCase())
)
);
setFilterValue(details.inputValue.split(""));
},
[initialItems]
);
return useMemo(
() => ({
collection,
filterChars: filterValue,
handleInputChange
}),
[collection, filterValue, handleInputChange]
);
}
export {
useStatefulCollection
};
//# sourceMappingURL=chunk-ET3UY6GV.js.map