feat: drill-down into sub-routes with breadcrumb navigation
Double-click a DIRECT or SEDA node to navigate into that route's diagram. Breadcrumbs show the route stack and allow clicking back to any level. Escape key goes back one level. Route ID resolution handles camelCase endpoint URIs mapping to kebab-case route IDs (e.g. direct:callGetProduct → call-get-product) using the catalog's known route IDs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -12,12 +12,13 @@ interface DiagramNodeProps {
|
||||
isSelected: boolean;
|
||||
config?: NodeConfig;
|
||||
onClick: () => void;
|
||||
onDoubleClick?: () => void;
|
||||
onMouseEnter: () => void;
|
||||
onMouseLeave: () => void;
|
||||
}
|
||||
|
||||
export function DiagramNode({
|
||||
node, isHovered, isSelected, config, onClick, onMouseEnter, onMouseLeave,
|
||||
node, isHovered, isSelected, config, onClick, onDoubleClick, onMouseEnter, onMouseLeave,
|
||||
}: DiagramNodeProps) {
|
||||
const x = node.x ?? 0;
|
||||
const y = node.y ?? 0;
|
||||
@@ -35,6 +36,7 @@ export function DiagramNode({
|
||||
data-node-id={node.id}
|
||||
transform={`translate(${x}, ${y})`}
|
||||
onClick={(e) => { e.stopPropagation(); onClick(); }}
|
||||
onDoubleClick={(e) => { e.stopPropagation(); onDoubleClick?.(); }}
|
||||
onMouseEnter={onMouseEnter}
|
||||
onMouseLeave={onMouseLeave}
|
||||
style={{ cursor: 'pointer' }}
|
||||
|
||||
Reference in New Issue
Block a user