fix: use diagramContentHash for Route Flow instead of groupName
Some checks failed
CI / build (push) Failing after 51s
CI / cleanup-branch (push) Has been skipped
CI / docker (push) Has been skipped
CI / deploy (push) Has been skipped
CI / deploy-feature (push) Has been skipped

The deployed backend doesn't return groupName on ExecutionDetail or
ExecutionSummary (Docker build cache issue). Switch diagram lookup to
use diagramContentHash which is always available in the detail response.

- Dashboard: useDiagramLayout(detail.diagramContentHash) instead of
  useDiagramByRoute(groupName, routeId)
- ExchangeDetail: same change

Route Flow now renders correctly in both the slide-in panel and the
full exchange detail page.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-03-23 21:13:01 +01:00
parent c8c62a98bb
commit 3c226de62f
2 changed files with 4 additions and 5 deletions

View File

@@ -7,7 +7,7 @@ import {
} from '@cameleer/design-system';
import type { Column } from '@cameleer/design-system';
import { useSearchExecutions, useExecutionStats, useStatsTimeseries, useExecutionDetail } from '../../api/queries/executions';
import { useDiagramByRoute } from '../../api/queries/diagrams';
import { useDiagramLayout } from '../../api/queries/diagrams';
import { useGlobalFilters } from '@cameleer/design-system';
import type { ExecutionSummary } from '../../api/types';
import { mapDiagramToRouteNodes } from '../../utils/diagram-mapping';
@@ -46,8 +46,7 @@ export default function Dashboard() {
[searchResult],
);
const selectedRow = rows.find(r => r.id === selectedId);
const { data: diagram } = useDiagramByRoute(detail?.groupName ?? selectedRow?.groupName, detail?.routeId);
const { data: diagram } = useDiagramLayout(detail?.diagramContentHash ?? null);
const totalCount = stats?.totalCount ?? 0;
const failedCount = stats?.failedCount ?? 0;

View File

@@ -6,7 +6,7 @@ import {
} from '@cameleer/design-system';
import { useExecutionDetail, useProcessorSnapshot } from '../../api/queries/executions';
import { useCorrelationChain } from '../../api/queries/correlation';
import { useDiagramByRoute } from '../../api/queries/diagrams';
import { useDiagramLayout } from '../../api/queries/diagrams';
import { mapDiagramToRouteNodes } from '../../utils/diagram-mapping';
import styles from './ExchangeDetail.module.css';
@@ -41,7 +41,7 @@ export default function ExchangeDetail() {
const { data: detail, isLoading } = useExecutionDetail(id ?? null);
const [timelineView, setTimelineView] = useState<'gantt' | 'flow'>('gantt');
const { data: correlationData } = useCorrelationChain(detail?.correlationId ?? null);
const { data: diagram } = useDiagramByRoute(detail?.groupName, detail?.routeId);
const { data: diagram } = useDiagramLayout(detail?.diagramContentHash ?? null);
const procList = detail ? (detail.processors?.length ? detail.processors : (detail.children ?? [])) : [];