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, | |
| }; | |
| } |