import { useState } from "react"; function useArrayState(initialValue: T[]) { const [value, setValue] = useState(initialValue); function add(item: any) { setValue((prev) => [...prev, item]); } function remove(index: number) { setValue((prev) => prev.filter((_, i) => i !== index)); } function edit(editFn: (prev: T[]) => T[]) { setValue((prev) => editFn(prev)); } function replace(atIndex: number, withItem: T) { setValue((prev) => { let updated = [...prev]; updated[atIndex] = withItem; return updated; }); } return { value, add, remove, edit, replace }; } export default useArrayState;