UNPKG

@cerberus-design/react

Version:

The Cerberus Design React component library.

38 lines (36 loc) 1.03 kB
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