refactor(store,selection)!: Remove selectedNodesBbox from store

# What's changed?

* Remove selectedNodesBbox from store state
* Will be handled internally by NodesSelection component
This commit is contained in:
Braks
2022-05-27 23:36:01 +02:00
parent 80878a228c
commit f9671b1ec4
3 changed files with 7 additions and 13 deletions
@@ -4,7 +4,7 @@ import { getRectOfNodes } from '../../utils'
const { emits, setState, viewport, getSelectedNodes, snapToGrid, snapGrid, updateNodePosition, noPanClassName } = $(useVueFlow()) const { emits, setState, viewport, getSelectedNodes, snapToGrid, snapGrid, updateNodePosition, noPanClassName } = $(useVueFlow())
const el = templateRef<HTMLDivElement>('el', null) const el = ref()
useDrag({ useDrag({
el, el,
@@ -12,8 +12,8 @@ useDrag({
emits.selectionDragStart({ event: event.sourceEvent, nodes: getSelectedNodes }) emits.selectionDragStart({ event: event.sourceEvent, nodes: getSelectedNodes })
}, },
onDrag(event, { dx, dy }) { onDrag(event, { dx, dy }) {
emits.selectionDrag({ event: event.sourceEvent, nodes: getSelectedNodes })
updateNodePosition({ diff: { x: dx, y: dy } }) updateNodePosition({ diff: { x: dx, y: dy } })
emits.selectionDrag({ event: event.sourceEvent, nodes: getSelectedNodes })
}, },
onStop(event) { onStop(event) {
emits.selectionDragStop({ event: event.sourceEvent, nodes: getSelectedNodes }) emits.selectionDragStop({ event: event.sourceEvent, nodes: getSelectedNodes })
@@ -29,14 +29,6 @@ const innerStyle = computed(() => ({
left: `${selectedNodesBBox.x}px`, left: `${selectedNodesBBox.x}px`,
})) }))
const transform = computed(() => `translate(${viewport.x}px,${viewport.y}px) scale(${viewport.zoom})`)
watch($$(selectedNodesBBox), (v) => {
setState({
selectedNodesBbox: v,
})
})
const onContextMenu = (event: MouseEvent) => emits.selectionContextMenu({ event, nodes: getSelectedNodes }) const onContextMenu = (event: MouseEvent) => emits.selectionContextMenu({ event, nodes: getSelectedNodes })
</script> </script>
@@ -47,7 +39,11 @@ export default {
</script> </script>
<template> <template>
<div class="vue-flow__nodesselection vue-flow__container" :class="noPanClassName" :style="{ transform }"> <div
class="vue-flow__nodesselection vue-flow__container"
:class="noPanClassName"
:style="{ transform: `translate(${viewport.x}px,${viewport.y}px) scale(${viewport.zoom})` }"
>
<div ref="el" class="vue-flow__nodesselection-rect" :style="innerStyle" @contextmenu="onContextMenu" /> <div ref="el" class="vue-flow__nodesselection-rect" :style="innerStyle" @contextmenu="onContextMenu" />
</div> </div>
</template> </template>
-1
View File
@@ -73,7 +73,6 @@ const defaultState = (): State => ({
nodesSelectionActive: false, nodesSelectionActive: false,
userSelectionActive: false, userSelectionActive: false,
selectedNodesBbox: { x: 0, y: 0, width: 0, height: 0 },
defaultMarkerColor: '#b1b1b7', defaultMarkerColor: '#b1b1b7',
connectionLineStyle: {}, connectionLineStyle: {},
-1
View File
@@ -58,7 +58,6 @@ export interface State extends Omit<FlowOptions, 'id' | 'modelValue'> {
onlyRenderVisibleElements: boolean onlyRenderVisibleElements: boolean
defaultPosition: [number, number] defaultPosition: [number, number]
selectedNodesBbox: Rect
nodesSelectionActive: boolean nodesSelectionActive: boolean
userSelectionActive: boolean userSelectionActive: boolean
multiSelectionActive: boolean multiSelectionActive: boolean