@moxy/next-layout
Version:
Add persistent and nested layouts to your Next.js projects in a declarative way
30 lines (23 loc) • 809 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
const createSetObjectState = setState => newState => {
const updater = typeof newState === 'function' ? newState : () => newState;
return setState(state => ({ ...state,
...updater(state)
}));
};
const useObjectState = initialState => {
const [state, setState] = (0, _react.useState)(() => initialState !== null && initialState !== void 0 ? initialState : {});
const setObjectStateRef = (0, _react.useRef)();
if (!setObjectStateRef.current) {
setObjectStateRef.current = createSetObjectState(setState);
}
return [state, setObjectStateRef.current];
};
var _default = useObjectState;
exports.default = _default;
module.exports = exports.default;