refactor(core): pass node and edge id computed to getters and actions

Signed-off-by: braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
braks
2023-04-11 20:28:02 +02:00
committed by Braks
parent f19e210442
commit ebed9663b4
4 changed files with 182 additions and 86 deletions
+11 -6
View File
@@ -1,10 +1,10 @@
import { defaultEdgeTypes, defaultNodeTypes } from './state'
import type { ComputedRef } from 'vue'
import type { ComputedGetters, GraphEdge, GraphNode, State } from '~/types'
export function useGetters(state: State): ComputedGetters {
const nodeIds = computed(() => state.nodes.map((n) => n.id))
const edgeIds = computed(() => state.edges.map((e) => e.id))
export function useGetters(state: State, nodeIds: ComputedRef<string[]>, edgeIds: ComputedRef<string[]>): ComputedGetters {
/**
* @deprecated will be removed in next major version; use findNode instead
*/
const getNode: ComputedGetters['getNode'] = computed(() => (id: string) => {
if (state.nodes && !nodeIds.value.length) {
return state.nodes.find((node) => node.id === id)
@@ -13,6 +13,9 @@ export function useGetters(state: State): ComputedGetters {
return state.nodes[nodeIds.value.indexOf(id)]
})
/**
* @deprecated will be removed in next major version; use findEdge instead
*/
const getEdge: ComputedGetters['getEdge'] = computed(() => (id: string) => {
if (state.edges && !edgeIds.value.length) {
return state.edges.find((edge) => edge.id === id)
@@ -79,7 +82,9 @@ export function useGetters(state: State): ComputedGetters {
}
const getEdges: ComputedGetters['getEdges'] = computed(() => {
if (!state.onlyRenderVisibleElements) return state.edges.filter((edge) => edgeHidden(edge))
if (!state.onlyRenderVisibleElements) {
return state.edges.filter((edge) => edgeHidden(edge))
}
return state.edges.filter((e) => {
const source = getNode.value(e.source)!