@figliolia/react-hooks
Version:
A small collection of simple React Hooks you're probably rewriting on a regular basis
11 lines (10 loc) • 511 B
JavaScript
import { useCallback, useMemo } from "react";
import { useLoadingState } from "./useLoadingState.js";
export const useFormState = (callback) => {
const { setState, resetState, ...state } = useLoadingState();
const onSubmit = useCallback((e) => {
e.preventDefault();
void callback(new FormData(e.target), setState, resetState);
}, [callback, setState, resetState]);
return useMemo(() => ({ onSubmit, ...state, setState, resetState }), [onSubmit, state, setState, resetState]);
};