diff --git a/packages/workflow-dashboard/src/components/workflow-graph/condition-edge.tsx b/packages/workflow-dashboard/src/components/workflow-graph/condition-edge.tsx index fffc9d4..a147c3d 100644 --- a/packages/workflow-dashboard/src/components/workflow-graph/condition-edge.tsx +++ b/packages/workflow-dashboard/src/components/workflow-graph/condition-edge.tsx @@ -20,7 +20,7 @@ export function ConditionEdge(props: EdgeProps) { data, markerEnd, } = props; - const edgeData = data as (ConditionEdgeData & { elkLabelX?: number | null; elkLabelY?: number | null }) | undefined; + const edgeData = data as ConditionEdgeData | undefined; const isFallback = edgeData?.isFallback ?? false; const isSelfLoop = source === target; diff --git a/packages/workflow-dashboard/src/components/workflow-graph/types.ts b/packages/workflow-dashboard/src/components/workflow-graph/types.ts index 0c509ce..01c639a 100644 --- a/packages/workflow-dashboard/src/components/workflow-graph/types.ts +++ b/packages/workflow-dashboard/src/components/workflow-graph/types.ts @@ -21,6 +21,8 @@ export type ConditionEdgeData = { condition: string; conditionDescription: string | null; isFallback: boolean; + elkLabelX: number | null; + elkLabelY: number | null; [key: string]: unknown; }; diff --git a/packages/workflow-dashboard/src/components/workflow-graph/use-layout.ts b/packages/workflow-dashboard/src/components/workflow-graph/use-layout.ts index ac022ad..76fddbb 100644 --- a/packages/workflow-dashboard/src/components/workflow-graph/use-layout.ts +++ b/packages/workflow-dashboard/src/components/workflow-graph/use-layout.ts @@ -99,7 +99,7 @@ function buildEdge(e: WorkflowGraphEdge, elkEdgeMap: Map, nodeStates: input.nodeStates, }; - computeLayout(parsed).then((result) => { - if (!cancelled) setLayout(result); - }); + computeLayout(parsed) + .then((result) => { + if (!cancelled) setLayout(result); + }) + .catch((err: unknown) => { + if (!cancelled) { + // biome-ignore lint/suspicious/noConsole: layout error reporting + console.error("ELK layout failed:", err); + } + }); return () => { cancelled = true; };