| import { get } from 'svelte/store'; | |
| import { errorMessages } from '@xyflow/system'; | |
| import { useStore } from '../store'; | |
| export function useHandleEdgeSelect() { | |
| const { edgeLookup, selectionRect, selectionRectMode, multiselectionKeyPressed, addSelectedEdges, unselectNodesAndEdges, elementsSelectable } = useStore(); | |
| return (id) => { | |
| const edge = get(edgeLookup).get(id); | |
| if (!edge) { | |
| console.warn('012', errorMessages['error012'](id)); | |
| return; | |
| } | |
| const selectable = edge.selectable || (get(elementsSelectable) && typeof edge.selectable === 'undefined'); | |
| if (selectable) { | |
| selectionRect.set(null); | |
| selectionRectMode.set(null); | |
| if (!edge.selected) { | |
| addSelectedEdges([id]); | |
| } | |
| else if (edge.selected && get(multiselectionKeyPressed)) { | |
| unselectNodesAndEdges({ nodes: [], edges: [edge] }); | |
| } | |
| } | |
| }; | |
| } | |