From ea9da0adb77ab53578469963d668d09eda25d79f Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Fri, 14 Oct 2022 21:04:17 +0200 Subject: [PATCH] refactor(core): use flowElements type as arg for removeSelectedElements --- .../elements/removeSelectedElements.cy.ts | 25 ++++++++----------- packages/core/src/types/store.ts | 2 +- packages/core/src/utils/node.ts | 2 +- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/e2e/cypress/component/1-store/elements/removeSelectedElements.cy.ts b/e2e/cypress/component/1-store/elements/removeSelectedElements.cy.ts index e8bfdfd9..6048b218 100644 --- a/e2e/cypress/component/1-store/elements/removeSelectedElements.cy.ts +++ b/e2e/cypress/component/1-store/elements/removeSelectedElements.cy.ts @@ -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 { 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) randomNumber2 = Math.floor(Math.random() * randomNumber) store.addSelectedElements(Array.from({ length: randomNumber }, (_, i) => store.getElements.value[i])) store.removeSelectedElements( - Array.from({ length: randomNumber2 }, (_, i) => store.getElements.value[i]).reduce( - (acc, curr) => { - if (isNode(curr)) { - acc.nodes.push(curr) - } else { - acc.edges.push(curr) - } + Array.from({ length: randomNumber2 }, (_, i) => store.getElements.value[i]).reduce((acc, curr) => { + if (isNode(curr)) { + acc.push(curr) + } else { + acc.push(curr) + } - return acc - }, - { nodes: [] as GraphNode[], edges: [] as GraphEdge[] }, - ), + return acc + }, [] as Elements), ) - cy.tryAssertion(() => { + await cy.tryAssertion(() => { expect(store.getSelectedElements.value).to.have.length(randomNumber - randomNumber2) }) }) diff --git a/packages/core/src/types/store.ts b/packages/core/src/types/store.ts index 7faf25bb..decf2666 100644 --- a/packages/core/src/types/store.ts +++ b/packages/core/src/types/store.ts @@ -171,7 +171,7 @@ export interface Actions extends ViewportFunctions { /** manually unselect nodes and remove from state */ removeSelectedNodes: (nodes: GraphNode[]) => void /** 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 */ setMinZoom: (zoom: number) => void /** apply max zoom value to d3 */ diff --git a/packages/core/src/utils/node.ts b/packages/core/src/utils/node.ts index 4e6b4dd2..5081a4c0 100644 --- a/packages/core/src/utils/node.ts +++ b/packages/core/src/utils/node.ts @@ -37,6 +37,6 @@ export const handleNodeClick = ( if (!node.selected) { addSelectedNodes([node]) } else if (node.selected && multiSelectionActive) { - removeSelectedElements({ nodes: [node] }) + removeSelectedElements([node]) } }