vue-hooks-plus
Version:
Vue hooks library
24 lines (23 loc) • 726 B
JavaScript
import { ref, computed, shallowReadonly } from "vue";
function useToggle(defaultValue = false, reverseValue) {
const state = ref(defaultValue);
const actions = 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 [shallowReadonly(state), { ...actions.value }];
}
export {
useToggle as default
};