Files
vue-vben-admin/src/hooks/core/useToggle.ts
2020-11-18 22:41:59 +08:00

21 lines
525 B
TypeScript

import { ref, watch, Ref, SetupContext } from 'vue';
export function useToggle(internalModel: Ref<unknown>, { emit }: SetupContext) {
const isActive = ref(!!internalModel.value);
const isToggled = ref(false);
watch(internalModel, (val) => {
isActive.value = !!val;
});
watch(isActive, (value) => {
!!value !== !!internalModel.value && emit('onUpdate:modelValue', value);
});
function toggleIt() {
isToggled.value = !isToggled.value;
}
return {
isActive,
toggleIt,
isToggled,
};
}