From 8b19266c9ac669f6e57ba304251b993276e39b36 Mon Sep 17 00:00:00 2001 From: eclipxe Date: Mon, 12 Jan 2026 08:53:32 -0800 Subject: [PATCH] feat: Add secondary inline actions for waiting_approval status --- .../components/list-view/row-actions.tsx | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/apps/ui/src/components/views/board-view/components/list-view/row-actions.tsx b/apps/ui/src/components/views/board-view/components/list-view/row-actions.tsx index edb667ce..9379edbe 100644 --- a/apps/ui/src/components/views/board-view/components/list-view/row-actions.tsx +++ b/apps/ui/src/components/views/board-view/components/list-view/row-actions.tsx @@ -185,6 +185,31 @@ function getPrimaryAction( return null; } +/** + * Get secondary actions for inline display based on feature status + */ +function getSecondaryActions( + feature: Feature, + handlers: RowActionHandlers +): Array<{ + icon: React.ComponentType<{ className?: string }>; + label: string; + onClick: () => void; +}> { + const actions = []; + + // Refine action for waiting_approval status + if (feature.status === 'waiting_approval' && handlers.onFollowUp) { + actions.push({ + icon: Wand2, + label: 'Refine', + onClick: handlers.onFollowUp, + }); + } + + return actions; +} + /** * RowActions provides an inline action menu for list view rows. * @@ -198,7 +223,7 @@ function getPrimaryAction( * Actions by status: * - Backlog: Edit, Delete, Make (implement), View Plan, Spawn Sub-Task * - In Progress: View Logs, Resume, Approve Plan, Manual Verify, Edit, Spawn Sub-Task, Delete - * - Waiting Approval: Refine, Verify, View Logs, View PR, Edit, Spawn Sub-Task, Delete + * - Waiting Approval: Refine (inline secondary), Verify, View Logs, View PR, Edit, Spawn Sub-Task, Delete * - Verified: View Logs, View PR, View Branch, Complete, Edit, Spawn Sub-Task, Delete * - Running (auto task): View Logs, Approve Plan, Edit, Spawn Sub-Task, Force Stop * - Pipeline statuses: View Logs, Edit, Spawn Sub-Task, Delete @@ -238,6 +263,7 @@ export const RowActions = memo(function RowActions({ ); const primaryAction = getPrimaryAction(feature, handlers, isCurrentAutoTask); + const secondaryActions = getSecondaryActions(feature, handlers); // Helper to close menu after action const withClose = useCallback( @@ -280,6 +306,24 @@ export const RowActions = memo(function RowActions({ )} + {/* Secondary action buttons */} + {secondaryActions.map((action, index) => ( + + ))} + {/* Dropdown menu */}