chore: cleanup unused vars and remove setState usage
This commit is contained in:
@@ -5,11 +5,15 @@ import { getConnectedEdges, getNodesInside } from '../../utils'
|
|||||||
import SelectionRect from './SelectionRect.vue'
|
import SelectionRect from './SelectionRect.vue'
|
||||||
import { getMousePosition } from './utils'
|
import { getMousePosition } from './utils'
|
||||||
|
|
||||||
const { userSelectionActive, setState, getNodes, getEdges, viewport, addSelectedEdges, addSelectedNodes } = $(useVueFlow())
|
const { userSelectionActive, nodesSelectionActive, getNodes, getEdges, viewport, addSelectedEdges, addSelectedNodes } =
|
||||||
|
useVueFlow()
|
||||||
|
|
||||||
const el = templateRef('user-selection', null)
|
const el = templateRef('user-selection', null)
|
||||||
|
|
||||||
let prevNodes = $ref(0)
|
let prevNodes = $ref(0)
|
||||||
|
|
||||||
let prevEdges = $ref(0)
|
let prevEdges = $ref(0)
|
||||||
|
|
||||||
const initialRect = () => ({
|
const initialRect = () => ({
|
||||||
width: 0,
|
width: 0,
|
||||||
height: 0,
|
height: 0,
|
||||||
@@ -27,9 +31,7 @@ const reset = () => {
|
|||||||
prevNodes = 0
|
prevNodes = 0
|
||||||
prevEdges = 0
|
prevEdges = 0
|
||||||
|
|
||||||
setState({
|
userSelectionActive.value = false
|
||||||
userSelectionActive: false,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const onMouseDown = (event: MouseEvent) => {
|
const onMouseDown = (event: MouseEvent) => {
|
||||||
@@ -46,10 +48,8 @@ const onMouseDown = (event: MouseEvent) => {
|
|||||||
draw: true,
|
draw: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
setState({
|
userSelectionActive.value = true
|
||||||
userSelectionActive: true,
|
nodesSelectionActive.value = true
|
||||||
nodesSelectionActive: false,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const onMouseMove = (event: MouseEvent) => {
|
const onMouseMove = (event: MouseEvent) => {
|
||||||
@@ -69,8 +69,8 @@ const onMouseMove = (event: MouseEvent) => {
|
|||||||
height: Math.abs(mousePos.y - startY),
|
height: Math.abs(mousePos.y - startY),
|
||||||
}
|
}
|
||||||
|
|
||||||
const selectedNodes = getNodesInside(getNodes, rect, viewport)
|
const selectedNodes = getNodesInside(getNodes.value, rect, viewport.value)
|
||||||
const selectedEdges = getConnectedEdges(selectedNodes, getEdges)
|
const selectedEdges = getConnectedEdges(selectedNodes, getEdges.value)
|
||||||
|
|
||||||
rect = nextUserSelectRect
|
rect = nextUserSelectRect
|
||||||
|
|
||||||
@@ -84,31 +84,23 @@ const onMouseMove = (event: MouseEvent) => {
|
|||||||
const onMouseUp = () => {
|
const onMouseUp = () => {
|
||||||
rect = initialRect()
|
rect = initialRect()
|
||||||
|
|
||||||
setState({
|
nodesSelectionActive.value = prevNodes > 0
|
||||||
nodesSelectionActive: prevNodes > 0,
|
userSelectionActive.value = false
|
||||||
userSelectionActive: false,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const onMouseLeave = () => {
|
const onMouseLeave = () => {
|
||||||
setState({
|
nodesSelectionActive.value = prevNodes > 0
|
||||||
nodesSelectionActive: prevNodes > 0,
|
|
||||||
})
|
|
||||||
|
|
||||||
reset()
|
reset()
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
useEventListener(el, 'mousedown', onMouseDown)
|
||||||
useEventListener(el, 'mousedown', onMouseDown)
|
useEventListener(el, 'mousemove', onMouseMove)
|
||||||
useEventListener(el, 'mousemove', onMouseMove)
|
useEventListener(el, 'click', onMouseUp)
|
||||||
useEventListener(el, 'click', onMouseUp)
|
useEventListener(el, 'mouseup', onMouseUp)
|
||||||
useEventListener(el, 'mouseup', onMouseUp)
|
useEventListener(el, 'mouseleave', onMouseLeave)
|
||||||
useEventListener(el, 'mouseleave', onMouseLeave)
|
|
||||||
})
|
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(reset)
|
||||||
reset()
|
|
||||||
})
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|||||||
@@ -5,28 +5,25 @@ import { NodesSelection, UserSelection } from '../../components'
|
|||||||
|
|
||||||
const {
|
const {
|
||||||
id,
|
id,
|
||||||
edges,
|
|
||||||
deleteKeyCode,
|
deleteKeyCode,
|
||||||
selectionKeyCode,
|
selectionKeyCode,
|
||||||
multiSelectionKeyCode,
|
multiSelectionKeyCode,
|
||||||
emits,
|
emits,
|
||||||
nodesSelectionActive,
|
nodesSelectionActive,
|
||||||
userSelectionActive,
|
userSelectionActive,
|
||||||
|
multiSelectionActive,
|
||||||
elementsSelectable,
|
elementsSelectable,
|
||||||
removeSelectedElements,
|
|
||||||
setState,
|
|
||||||
getSelectedEdges,
|
|
||||||
getSelectedNodes,
|
|
||||||
getNodes,
|
getNodes,
|
||||||
|
getSelectedEdges,
|
||||||
|
removeSelectedElements,
|
||||||
removeNodes,
|
removeNodes,
|
||||||
removeEdges,
|
removeEdges,
|
||||||
} = $(useVueFlow())
|
} = useVueFlow()
|
||||||
|
|
||||||
const onClick = (event: MouseEvent) => {
|
const onClick = (event: MouseEvent) => {
|
||||||
emits.paneClick(event)
|
emits.paneClick(event)
|
||||||
setState({
|
nodesSelectionActive.value = false
|
||||||
nodesSelectionActive: false,
|
|
||||||
})
|
|
||||||
removeSelectedElements()
|
removeSelectedElements()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,7 +40,7 @@ const onMouseMove = (event: MouseEvent) => emits.paneMouseMove(event)
|
|||||||
useKeyPress(deleteKeyCode, (keyPressed) => {
|
useKeyPress(deleteKeyCode, (keyPressed) => {
|
||||||
if (!keyPressed) return
|
if (!keyPressed) return
|
||||||
|
|
||||||
const nodesToRemove = getNodes.reduce<GraphNode[]>((res, node) => {
|
const nodesToRemove = getNodes.value.reduce<GraphNode[]>((res, node) => {
|
||||||
if (!node.selected && node.parentNode && res.find((n) => n.id === node.parentNode)) {
|
if (!node.selected && node.parentNode && res.find((n) => n.id === node.parentNode)) {
|
||||||
res.push(node)
|
res.push(node)
|
||||||
} else if (node.selected) {
|
} else if (node.selected) {
|
||||||
@@ -53,37 +50,29 @@ useKeyPress(deleteKeyCode, (keyPressed) => {
|
|||||||
return res
|
return res
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
const selectedEdges = edges.filter((e) => e.selected)
|
if (nodesToRemove || getSelectedEdges.value) {
|
||||||
|
if (getSelectedEdges.value.length > 0) {
|
||||||
if (nodesToRemove || selectedEdges) {
|
removeEdges(getSelectedEdges.value)
|
||||||
if (selectedEdges.length > 0) {
|
|
||||||
removeEdges(selectedEdges)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nodesToRemove.length > 0) {
|
if (nodesToRemove.length > 0) {
|
||||||
removeNodes(nodesToRemove)
|
removeNodes(nodesToRemove)
|
||||||
}
|
}
|
||||||
|
|
||||||
setState({
|
nodesSelectionActive.value = false
|
||||||
nodesSelectionActive: false,
|
|
||||||
})
|
|
||||||
|
|
||||||
removeSelectedElements()
|
removeSelectedElements()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
useKeyPress(multiSelectionKeyCode, (keyPressed) => {
|
useKeyPress(multiSelectionKeyCode, (keyPressed) => {
|
||||||
setState({
|
multiSelectionActive.value = keyPressed
|
||||||
multiSelectionActive: keyPressed,
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const selectionKeyPressed = useKeyPress(selectionKeyCode, (keyPressed) => {
|
const selectionKeyPressed = useKeyPress(selectionKeyCode, (keyPressed) => {
|
||||||
if (userSelectionActive && keyPressed) return
|
if (userSelectionActive.value && keyPressed) return
|
||||||
|
|
||||||
setState({
|
userSelectionActive.value = keyPressed && elementsSelectable.value
|
||||||
userSelectionActive: keyPressed && elementsSelectable,
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,7 @@ import EdgeRenderer from '../EdgeRenderer/EdgeRenderer.vue'
|
|||||||
import { useVueFlow, useWindow } from '../../composables'
|
import { useVueFlow, useWindow } from '../../composables'
|
||||||
import type { Dimensions } from '../../types'
|
import type { Dimensions } from '../../types'
|
||||||
|
|
||||||
const { id, nodes, edges, viewport, snapToGrid, snapGrid, dimensions, setState, fitViewOnInit, emits, fitView, ...rest } =
|
const { id, viewport, dimensions, fitViewOnInit, emits, fitView, ...rest } = useVueFlow()
|
||||||
useVueFlow()
|
|
||||||
|
|
||||||
const untilDimensions = async (dim: Dimensions) => {
|
const untilDimensions = async (dim: Dimensions) => {
|
||||||
// if ssr we can't wait for dimensions, they'll never really exist
|
// if ssr we can't wait for dimensions, they'll never really exist
|
||||||
@@ -29,13 +28,8 @@ onMounted(async () => {
|
|||||||
|
|
||||||
emits.paneReady({
|
emits.paneReady({
|
||||||
id,
|
id,
|
||||||
nodes,
|
|
||||||
edges,
|
|
||||||
viewport,
|
viewport,
|
||||||
snapToGrid,
|
|
||||||
snapGrid,
|
|
||||||
dimensions,
|
dimensions,
|
||||||
setState,
|
|
||||||
fitViewOnInit,
|
fitViewOnInit,
|
||||||
fitView,
|
fitView,
|
||||||
emits,
|
emits,
|
||||||
|
|||||||
@@ -68,20 +68,20 @@ const stop = watch(
|
|||||||
{ immediate: true },
|
{ immediate: true },
|
||||||
)
|
)
|
||||||
|
|
||||||
onBeforeUnmount(() => stop())
|
const window = useWindow()
|
||||||
|
if ('screen' in window) {
|
||||||
|
useEventListener(window, 'resize', () => {
|
||||||
|
if (!viewportEl.value) return
|
||||||
|
|
||||||
|
const { width, height } = getDimensions(viewportEl.value)
|
||||||
|
dimensions.width = width
|
||||||
|
dimensions.height = height
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
onBeforeUnmount(stop)
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
const window = useWindow()
|
|
||||||
if ('screen' in window) {
|
|
||||||
useEventListener(window, 'onresize', () => {
|
|
||||||
if (!viewportEl.value) return
|
|
||||||
|
|
||||||
const { width, height } = getDimensions(viewportEl.value)
|
|
||||||
dimensions.width = width
|
|
||||||
dimensions.height = height
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const d3Zoom = zoom<HTMLDivElement, any>().scaleExtent([minZoom, maxZoom]).translateExtent(translateExtent)
|
const d3Zoom = zoom<HTMLDivElement, any>().scaleExtent([minZoom, maxZoom]).translateExtent(translateExtent)
|
||||||
const d3Selection = select(viewportEl.value).call(d3Zoom)
|
const d3Selection = select(viewportEl.value).call(d3Zoom)
|
||||||
const d3ZoomHandler = d3Selection.on('wheel.zoom')
|
const d3ZoomHandler = d3Selection.on('wheel.zoom')
|
||||||
@@ -132,10 +132,11 @@ onMounted(() => {
|
|||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
if (panOnScroll && !zoomKeyPressed.value) {
|
if (panOnScroll && !zoomKeyPressed.value) {
|
||||||
d3Selection
|
d3Selection
|
||||||
.on('wheel', (event: any) => {
|
.on('wheel', (event: WheelEvent) => {
|
||||||
if (isWrappedWithClass(event, noWheelClassName?.value)) {
|
if (isWrappedWithClass(event, noWheelClassName?.value)) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
event.stopImmediatePropagation()
|
event.stopImmediatePropagation()
|
||||||
|
|
||||||
@@ -162,7 +163,7 @@ onMounted(() => {
|
|||||||
.on('wheel.zoom', null)
|
.on('wheel.zoom', null)
|
||||||
} else if (typeof d3ZoomHandler !== 'undefined') {
|
} else if (typeof d3ZoomHandler !== 'undefined') {
|
||||||
d3Selection
|
d3Selection
|
||||||
.on('wheel', (event: any) => {
|
.on('wheel', (event: WheelEvent) => {
|
||||||
if (!preventScrolling || isWrappedWithClass(event, noWheelClassName?.value)) {
|
if (!preventScrolling || isWrappedWithClass(event, noWheelClassName?.value)) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user