@cerberus-design/react
Version:
The Cerberus Design React component library.
38 lines (33 loc) • 1.06 kB
JavaScript
'use client';
;
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;