React hook for creating and managing todo state.
npm install @chewhx/use-todoimport { useTodo } from '@chewhx/use-todo';const {
allTodos,
todos,
completedTodos,
push,
pop,
markDone,
markNotDone,
toggleTodo,
remove,
update,
listName,
} = useTodo(listName, {
initialData?,
onUpdate?,
useLocalStorage?,
});-
listName: string- Required
- A unique key to identify state
- Ensure that each todo hook has a unique key or it will cause errors with local storage
-
initialData: ITodo[]- Optional
- An array of data to initialize the todo state
-
onUpdate: (ITodo[]) => void- Optional
- A function which will be executed on every state update
- Receives the full array of todos as param
-
useLocalStorage: boolean- Optional
- To store the todo state on local storage for persistence
- Data from local storage will take precedence over
initialData
-
allTodos: ITodo[]- Array of all todos
-
todos: ITodo[]- Array of all todos which are not done
-
completedTodos: ITodo[]- Array of all todos which are done
-
push: IPushTodo = (title: string) => void- Appends a new todo
-
pop: IPopTodo = () => void- Removes the last added todo
-
markDone: IMarkDone = (id: string) => void- Mark a todo as done
-
markNotDone: IMarkNotDone = (id: string) => void- Mark a todo as not done
-
toggleTodo: IToggleTodo = (id: string) => void- Toggle the done status of todo
-
update: IUpdateTodo = (id: string, title: string) => void;- Update the title of todo
-
remove: IRemoveTodo = (id: string) => void- Remove a specific todo