import { Button } from '@/components/ui/button'; import { Switch } from '@/components/ui/switch'; import { Slider } from '@/components/ui/slider'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { Menu, Bot, Wand2, Settings2, GitBranch, Zap } from 'lucide-react'; import { cn } from '@/lib/utils'; import { MobileUsageBar } from './mobile-usage-bar'; interface HeaderMobileMenuProps { // Worktree panel visibility isWorktreePanelVisible: boolean; onWorktreePanelToggle: (visible: boolean) => void; // Concurrency control maxConcurrency: number; runningAgentsCount: number; onConcurrencyChange: (value: number) => void; // Auto mode isAutoModeRunning: boolean; onAutoModeToggle: (enabled: boolean) => void; onOpenAutoModeSettings: () => void; // Plan button onOpenPlanDialog: () => void; // Usage bar visibility showClaudeUsage: boolean; showCodexUsage: boolean; } export function HeaderMobileMenu({ isWorktreePanelVisible, onWorktreePanelToggle, maxConcurrency, runningAgentsCount, onConcurrencyChange, isAutoModeRunning, onAutoModeToggle, onOpenAutoModeSettings, onOpenPlanDialog, showClaudeUsage, showCodexUsage, }: HeaderMobileMenuProps) { return ( {/* Usage Bar - show if either provider is authenticated */} {(showClaudeUsage || showCodexUsage) && ( <> Usage )} Controls {/* Auto Mode Toggle */}
onAutoModeToggle(!isAutoModeRunning)} data-testid="mobile-auto-mode-toggle-container" >
Auto Mode
e.stopPropagation()} data-testid="mobile-auto-mode-toggle" />
{/* Worktrees Toggle */}
onWorktreePanelToggle(!isWorktreePanelVisible)} data-testid="mobile-worktrees-toggle-container" >
Worktrees
e.stopPropagation()} data-testid="mobile-worktrees-toggle" />
{/* Concurrency Control */}
Max Agents {runningAgentsCount}/{maxConcurrency}
onConcurrencyChange(value[0])} min={1} max={10} step={1} className="w-full" data-testid="mobile-concurrency-slider" />
{/* Plan Button */} Plan
); }