UNPKG

next-gs

Version:

NPM package for building a React+NextJS+Prisma admin application.

29 lines (21 loc) 620 B
import React from "react"; import useState from "./useState"; const useMerge = (initialState) => { const [state, setState] = useState(initialState); const mergeState = React.useCallback( (newState) => { setState((curState) => ({ ...curState, ...newState })); }, [setState] ); const resetState = React.useCallback( () => setState(initialState), [setState, initialState] ); const changeState = React.useCallback( (e, { name, value }) => mergeState({ [name]: value }), [mergeState] ); return [state, mergeState, resetState, changeState]; }; export default useMerge;