refactor(core,composables): allow passing MaybeRefOrGetter to useNodesData

This commit is contained in:
braks
2024-02-05 07:51:12 +01:00
committed by Braks
parent 533e37e624
commit f4fb4d8036
+12 -4
View File
@@ -1,5 +1,7 @@
import type { ComputedRef } from 'vue' import type { ComputedRef } from 'vue'
import { computed } from 'vue' import { computed } from 'vue'
import type { MaybeRefOrGetter } from '@vueuse/core'
import { toValue } from '@vueuse/core'
import type { GraphNode, Node } from '../types' import type { GraphNode, Node } from '../types'
import { useVueFlow } from './useVueFlow' import { useVueFlow } from './useVueFlow'
@@ -13,17 +15,23 @@ type NodeData<NodeType extends Node = GraphNode> = NonNullable<NodeType['data']>
* @param guard - Optional guard function to narrow down the node type * @param guard - Optional guard function to narrow down the node type
* @returns An array of data objects * @returns An array of data objects
*/ */
export function useNodesData<NodeType extends Node = GraphNode>(nodeId: string): ComputedRef<NodeData<NodeType> | null>
export function useNodesData<NodeType extends Node = GraphNode>(nodeIds: string[]): ComputedRef<NodeData<NodeType>[]>
export function useNodesData<NodeType extends Node = GraphNode>( export function useNodesData<NodeType extends Node = GraphNode>(
nodeIds: string[], nodeId: MaybeRefOrGetter<string>,
): ComputedRef<NodeData<NodeType> | null>
export function useNodesData<NodeType extends Node = GraphNode>(
nodeIds: MaybeRefOrGetter<string[]>,
): ComputedRef<NodeData<NodeType>[]>
export function useNodesData<NodeType extends Node = GraphNode>(
nodeIds: MaybeRefOrGetter<string[]>,
guard: (node: Node) => node is NodeType, guard: (node: Node) => node is NodeType,
): ComputedRef<NodeData<NodeType>[]> ): ComputedRef<NodeData<NodeType>[]>
export function useNodesData(nodeIds: any): any { export function useNodesData(_nodeIds: any): any {
const { findNode } = useVueFlow() const { findNode } = useVueFlow()
return computed({ return computed({
get() { get() {
const nodeIds = toValue(_nodeIds)
if (!Array.isArray(nodeIds)) { if (!Array.isArray(nodeIds)) {
return findNode(nodeIds)?.data || null return findNode(nodeIds)?.data || null
} }