e.stopPropagation()}
+ onKeyDown={(e) => e.stopPropagation()}
+ >
+
+ ⋮
+
+ }
+ items={resolvedActions}
+ />
+
+ )
+}
+
+export function RouteFlow({ nodes, onNodeClick, selectedIndex, actions, getActions, className }: RouteFlowProps) {
const mainNodes = nodes.filter((n) => n.type !== 'error-handler')
const errorHandlers = nodes.filter((n) => n.type === 'error-handler')
@@ -102,6 +145,7 @@ export function RouteFlow({ nodes, onNodeClick, selectedIndex, className }: Rout
{formatDuration(node.durationMs)}
+ {renderActionTrigger(node, originalIndex, isSelected, actions, getActions)}
)
@@ -110,22 +154,26 @@ export function RouteFlow({ nodes, onNodeClick, selectedIndex, className }: Rout
{errorHandlers.length > 0 && (
Error Handler
- {errorHandlers.map((node, i) => (
-
-
- {TYPE_ICONS['error-handler']}
-
-
-
{node.type}
-
{node.name}
-
-
-
- {formatDuration(node.durationMs)}
+ {errorHandlers.map((node, i) => {
+ const errOriginalIndex = nodes.indexOf(node)
+ return (
+
+
+ {TYPE_ICONS['error-handler']}
+
+
{node.type}
+
{node.name}
+
+
+
+ {formatDuration(node.durationMs)}
+
+
+ {renderActionTrigger(node, errOriginalIndex, false, actions, getActions)}
-
- ))}
+ )
+ })}
)}
diff --git a/src/design-system/composites/index.ts b/src/design-system/composites/index.ts
index 6578721..4fc92a8 100644
--- a/src/design-system/composites/index.ts
+++ b/src/design-system/composites/index.ts
@@ -32,9 +32,9 @@ export { MultiSelect } from './MultiSelect/MultiSelect'
export type { MultiSelectOption } from './MultiSelect/MultiSelect'
export { Popover } from './Popover/Popover'
export { ProcessorTimeline } from './ProcessorTimeline/ProcessorTimeline'
-export type { ProcessorStep } from './ProcessorTimeline/ProcessorTimeline'
+export type { ProcessorStep, ProcessorAction } from './ProcessorTimeline/ProcessorTimeline'
export { RouteFlow } from './RouteFlow/RouteFlow'
-export type { RouteNode } from './RouteFlow/RouteFlow'
+export type { RouteNode, NodeAction } from './RouteFlow/RouteFlow'
export { ShortcutsBar } from './ShortcutsBar/ShortcutsBar'
export { SegmentedTabs } from './SegmentedTabs/SegmentedTabs'
export { SplitPane } from './SplitPane/SplitPane'
diff --git a/src/pages/Inventory/sections/CompositesSection.tsx b/src/pages/Inventory/sections/CompositesSection.tsx
index 3d938e2..828a7f3 100644
--- a/src/pages/Inventory/sections/CompositesSection.tsx
+++ b/src/pages/Inventory/sections/CompositesSection.tsx
@@ -769,7 +769,7 @@ export function CompositesSection() {
[
+ { label: 'Change Log Level', onClick: () => {} },
+ { label: 'View Configuration', onClick: () => {} },
+ ...(proc.status === 'fail' ? [{ label: 'View Stack Trace', onClick: () => {} }] : []),
+ ]}
/>
@@ -788,7 +793,7 @@ export function CompositesSection() {
{} },
+ { label: 'Enable Tracing', onClick: () => {} },
+ ]}
/>