UNPKG

mg-js

Version:

A set of useful functions, components and hooks.

38 lines (37 loc) 1.21 kB
import { useState } from 'react'; const useObjectState = (initObject) => { const initialization = () => { let init = {}; if (Array.isArray(initObject)) { initObject.forEach((key => { if (typeof key === "object") { for (let innerKey in key) { init[innerKey] = key[innerKey]; } } else { init[key] = ""; } })); return init; } return initObject; }; const [state, setState] = useState(initialization); const updateState = (keyOrObject, value) => { if (typeof keyOrObject === "object") { setState(Object.assign(Object.assign({}, state), keyOrObject)); } else { setState(Object.assign(Object.assign({}, state), { [keyOrObject]: value })); } }; const resetState = (resetVal) => { for (let key in state) { state[key] = resetVal; } setState(Object.assign({}, state)); }; return [state, updateState, resetState]; }; export default useObjectState;