feat: move feature action buttons to pending column header

Move the "Add Feature" (+) and "Expand Project" (sparkles) buttons from
the top navigation bar to the Pending column header in the Kanban board.

Changes:
- KanbanColumn: Add optional onAddFeature, onExpandProject, and
  showExpandButton props; render action buttons in column header
- KanbanBoard: Accept and pass action handlers to the Pending column
- App: Remove buttons from header, pass handlers to KanbanBoard

This improves UX by placing feature creation actions contextually near
the pending features they affect. Keyboard shortcuts (N, E) still work.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Auto
2026-01-10 20:26:57 +02:00
parent 117ca89f08
commit 334b655472
3 changed files with 46 additions and 31 deletions

View File

@@ -19,7 +19,7 @@ import { AssistantFAB } from './components/AssistantFAB'
import { AssistantPanel } from './components/AssistantPanel'
import { ExpandProjectModal } from './components/ExpandProjectModal'
import { SettingsModal } from './components/SettingsModal'
import { Plus, Loader2, Sparkles, Settings } from 'lucide-react'
import { Loader2, Settings } from 'lucide-react'
import type { Feature } from './lib/types'
function App() {
@@ -171,31 +171,6 @@ function App() {
{selectedProject && (
<>
<button
onClick={() => setShowAddFeature(true)}
className="neo-btn neo-btn-primary text-sm"
title="Add new feature"
>
<Plus size={18} />
<kbd className="ml-1.5 px-1.5 py-0.5 text-xs bg-black/20 rounded font-mono">
N
</kbd>
</button>
{/* Expand Project - only show if project has features */}
{features && (features.pending.length + features.in_progress.length + features.done.length) > 0 && (
<button
onClick={() => setShowExpandProject(true)}
className="neo-btn bg-[var(--color-neo-progress)] text-black text-sm"
title="Expand project with AI"
>
<Sparkles size={18} />
<kbd className="ml-1.5 px-1.5 py-0.5 text-xs bg-black/20 rounded font-mono">
E
</kbd>
</button>
)}
<AgentControl
projectName={selectedProject}
status={wsState.agentStatus}
@@ -267,6 +242,8 @@ function App() {
<KanbanBoard
features={features}
onFeatureClick={setSelectedFeature}
onAddFeature={() => setShowAddFeature(true)}
onExpandProject={() => setShowExpandProject(true)}
/>
</div>
)}