UNPKG

@cerberus-design/react

Version:

The Cerberus Design React component library.

38 lines (33 loc) 1.06 kB
'use client'; 'use strict'; Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const React = require('react'); const primitives = require('../select/primitives.cjs'); function useStatefulCollection(initialItems = []) { const [items, setItems] = React.useState(initialItems); const [filterValue, setFilterValue] = React.useState([]); const collection = React.useMemo(() => primitives.createSelectCollection(items), [items]); const handleInputChange = React.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 React.useMemo( () => ({ collection, filterChars: filterValue, handleInputChange }), [collection, filterValue, handleInputChange] ); } exports.useStatefulCollection = useStatefulCollection;