43 lines
749 B
JavaScript
43 lines
749 B
JavaScript
import { computed, ref, unref } from 'vue'
|
|
|
|
/**
|
|
* Returns the Boolean value of the response and the switching method
|
|
*/
|
|
export function useSwitch (
|
|
defaultValue = false,
|
|
{
|
|
trueValue = true,
|
|
falseValue = false
|
|
} = {}
|
|
) {
|
|
const value = ref(defaultValue ? trueValue : falseValue)
|
|
|
|
function toggle () {
|
|
if (unref(isTrue)) {
|
|
switchFalse()
|
|
} else {
|
|
switchTrue()
|
|
}
|
|
}
|
|
|
|
function switchTrue () {
|
|
value.value = trueValue
|
|
}
|
|
|
|
function switchFalse () {
|
|
value.value = falseValue
|
|
}
|
|
|
|
const isTrue = computed(() => unref(value) === trueValue)
|
|
const isFalse = computed(() => unref(value) === falseValue)
|
|
|
|
return {
|
|
value,
|
|
toggle,
|
|
switchTrue,
|
|
switchFalse,
|
|
isTrue,
|
|
isFalse
|
|
}
|
|
}
|