DuyTa's picture
Upload folder using huggingface_hub
bc20498 verified
raw
history blame
1.2 kB
import { derived } from 'svelte/store';
import { areConnectionMapsEqual } from '@xyflow/system';
import { useStore } from '../store';
import { getContext } from 'svelte';
const initialConnections = [];
/**
* Hook to check if a <Handle /> is connected to another <Handle /> and get the connections.
*
* @public
* @param param.nodeId
* @param param.type - handle type 'source' or 'target'
* @param param.id - the handle id (this is only needed if the node has multiple handles of the same type)
* @returns an array with connections
*/
export function useHandleConnections({ type, nodeId, id = null }) {
const { edges, connectionLookup } = useStore();
const _nodeId = getContext('svelteflow__node_id');
const currentNodeId = nodeId ?? _nodeId;
let prevConnections = undefined;
return derived([edges, connectionLookup], ([, connectionLookup], set) => {
const nextConnections = connectionLookup.get(`${currentNodeId}-${type}-${id || null}`);
if (!areConnectionMapsEqual(nextConnections, prevConnections)) {
prevConnections = nextConnections;
set(Array.from(prevConnections?.values() || []));
}
}, initialConnections);
}