vue-hooks-plus
Version:
Vue hooks library
23 lines (22 loc) • 719 B
JavaScript
const vue = require("vue");
function useToggle(defaultValue = false, reverseValue) {
const state = vue.ref(defaultValue);
const actions = vue.computed(() => {
const reverseValueOrigin = reverseValue === void 0 ? !defaultValue : reverseValue;
const toggle = () => {
state.value = state.value === defaultValue ? reverseValueOrigin : defaultValue;
};
const set = (value) => state.value = value;
const setLeft = () => state.value = defaultValue;
const setRight = () => state.value = reverseValueOrigin;
return {
toggle,
set,
setLeft,
setRight
};
});
return [vue.shallowReadonly(state), { ...actions.value }];
}
module.exports = useToggle;
;