vue-hooks-plus
Version:
Vue hooks library
19 lines (18 loc) • 716 B
JavaScript
const vue = require("vue");
const merge = require("lodash-es/merge");
const _interopDefaultLegacy = (e) => e && typeof e === "object" && "default" in e ? e : { default: e };
const merge__default = /* @__PURE__ */ _interopDefaultLegacy(merge);
function useSetState(initialState) {
const getInitialState = () => vue.unref(initialState);
const state = vue.ref(getInitialState());
const setMergeState = (patch, cover = false) => {
const newState = vue.unref(patch);
if (cover)
state.value = newState;
else
state.value = newState ? merge__default.default(state.value, newState) : state.value;
};
return [vue.readonly(state), setMergeState];
}
module.exports = useSetState;
;