mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-28 12:11:08 -04:00
34 lines
668 B
JavaScript
34 lines
668 B
JavaScript
import { ref, toRefs } from 'vue'
|
|
|
|
export default function usePointer(props, context, dep) {
|
|
const { groupSelect, mode, groups } = toRefs(props)
|
|
|
|
// ================ DATA ================
|
|
|
|
const pointer = ref(null)
|
|
|
|
// =============== METHODS ==============
|
|
|
|
const setPointer = (option) => {
|
|
if (option === undefined || (option !== null && option.disabled)) {
|
|
return
|
|
}
|
|
|
|
if (groups.value && option && option.group && (mode.value === 'single' || !groupSelect.value)) {
|
|
return
|
|
}
|
|
|
|
pointer.value = option
|
|
}
|
|
|
|
const clearPointer = () => {
|
|
setPointer(null)
|
|
}
|
|
|
|
return {
|
|
pointer,
|
|
setPointer,
|
|
clearPointer,
|
|
}
|
|
}
|