UNPKG

@supunlakmal/hooks

Version:

A collection of reusable React hooks

35 lines 1.18 kB
import { useState, useCallback } from 'react'; export function useListState(initialState = []) { const [list, setList] = useState(initialState); const push = useCallback((item) => { setList((prevList) => [...prevList, item]); }, []); const filter = useCallback((callback) => { setList((prevList) => prevList.filter(callback)); }, []); const update = useCallback((index, newItem) => { setList((prevList) => { const newList = [...prevList]; if (index >= 0 && index < newList.length) { newList[index] = newItem; } return newList; }); }, []); const remove = useCallback((index) => { setList((prevList) => { if (index >= 0 && index < prevList.length) { return prevList.filter((_, i) => i !== index); } return prevList; }); }, []); const set = useCallback((newList) => { setList(newList); }, []); const clear = useCallback(() => { setList([]); }, []); return [list, push, filter, update, remove, set, clear]; } //# sourceMappingURL=useListState.js.map