I made this once, but never used it. I'm dropping it here incase I need it someday.
const {
collection,
addItem,
removeItem,
setItems,
} = useManageableCollection([]);
function useManageableCollection(initialValues = []) { | |
const [collection, setCollection] = useState(initialValues); | |
const addItem = (item) => setCollection([...collection, item]); | |
const removeItem = (index) => | |
setCollection(collection.filter((item, testIndex) => index !== testIndex)); | |
const clearItems = () => setCollection([]); | |
return { | |
collection, | |
addItem, | |
removeItem, | |
setItems: setCollection, | |
clearItems, | |
}; | |
} |