refactor(core): use flowElements type as arg for removeSelectedElements

This commit is contained in:
braks
2022-10-14 21:04:17 +02:00
committed by Braks
parent 583efe6c68
commit ea9da0adb7
3 changed files with 13 additions and 16 deletions

View File

@@ -1,4 +1,4 @@
import type { GraphEdge, GraphNode } from '@vue-flow/core' import type { Elements } from '@vue-flow/core'
import { isNode, useVueFlow } from '@vue-flow/core' import { isNode, useVueFlow } from '@vue-flow/core'
import { getElements } from '../../../utils' import { getElements } from '../../../utils'
@@ -16,26 +16,23 @@ describe('Store Action: `removeSelectedElements`', () => {
}) })
}) })
it('removes passed elements from selected elements in store', () => { it('removes passed elements from selected elements in store', async () => {
randomNumber = Math.floor(Math.random() * [...nodes, ...edges].length) randomNumber = Math.floor(Math.random() * [...nodes, ...edges].length)
randomNumber2 = Math.floor(Math.random() * randomNumber) randomNumber2 = Math.floor(Math.random() * randomNumber)
store.addSelectedElements(Array.from({ length: randomNumber }, (_, i) => store.getElements.value[i])) store.addSelectedElements(Array.from({ length: randomNumber }, (_, i) => store.getElements.value[i]))
store.removeSelectedElements( store.removeSelectedElements(
Array.from({ length: randomNumber2 }, (_, i) => store.getElements.value[i]).reduce( Array.from({ length: randomNumber2 }, (_, i) => store.getElements.value[i]).reduce((acc, curr) => {
(acc, curr) => { if (isNode(curr)) {
if (isNode(curr)) { acc.push(curr)
acc.nodes.push(curr) } else {
} else { acc.push(curr)
acc.edges.push(curr) }
}
return acc return acc
}, }, [] as Elements),
{ nodes: [] as GraphNode[], edges: [] as GraphEdge[] },
),
) )
cy.tryAssertion(() => { await cy.tryAssertion(() => {
expect(store.getSelectedElements.value).to.have.length(randomNumber - randomNumber2) expect(store.getSelectedElements.value).to.have.length(randomNumber - randomNumber2)
}) })
}) })

View File

@@ -171,7 +171,7 @@ export interface Actions extends ViewportFunctions {
/** manually unselect nodes and remove from state */ /** manually unselect nodes and remove from state */
removeSelectedNodes: (nodes: GraphNode[]) => void removeSelectedNodes: (nodes: GraphNode[]) => void
/** unselect selected elements (if none are passed, all elements are unselected) */ /** unselect selected elements (if none are passed, all elements are unselected) */
removeSelectedElements: (elements?: { nodes?: GraphNode[]; edges?: GraphEdge[] }) => void removeSelectedElements: (elements?: Elements) => void
/** apply min zoom value to d3 */ /** apply min zoom value to d3 */
setMinZoom: (zoom: number) => void setMinZoom: (zoom: number) => void
/** apply max zoom value to d3 */ /** apply max zoom value to d3 */

View File

@@ -37,6 +37,6 @@ export const handleNodeClick = (
if (!node.selected) { if (!node.selected) {
addSelectedNodes([node]) addSelectedNodes([node])
} else if (node.selected && multiSelectionActive) { } else if (node.selected && multiSelectionActive) {
removeSelectedElements({ nodes: [node] }) removeSelectedElements([node])
} }
} }