import { ref, watch } from 'vue'; import { storeToRefs } from 'pinia'; import { useMcadStore } from '@/stores/mcad.store'; import { InteractionType } from '@3cr/types-ts'; import { DataOverlayMcad } from '@3cr/viewer-types-ts'; export function useMcadSelectTool() { const { mcadEvent } = storeToRefs(useMcadStore()); const isActive = ref(false); const selected = ref(null); watch(mcadEvent, (event) => { if (isActive.value && event?.Interaction === InteractionType.POINTER_UP) { selected.value = event.Mcad; } }); function isSelected(mcad: DataOverlayMcad): boolean { return selected.value?.Id === mcad.Id; } function toggle(mcad: DataOverlayMcad): void { if (!isSelected(mcad)) { selected.value = mcad; } else { selected.value = null; } } return { isActive, selected, isSelected, toggle }; }