import { Button } from '@/components/ui/button'; import { Switch } from '@/components/ui/switch'; import { Slider } from '@/components/ui/slider'; import { HeaderActionsPanel, HeaderActionsPanelTrigger, } from '@/components/ui/header-actions-panel'; import { Bot, Wand2, GitBranch, Zap, FastForward } from 'lucide-react'; import { cn } from '@/lib/utils'; import { MobileUsageBar } from './mobile-usage-bar'; interface HeaderMobileMenuProps { // Panel visibility isOpen: boolean; onToggle: () => void; // 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; skipVerificationInAutoMode: boolean; onSkipVerificationChange: (value: boolean) => void; // Plan button onOpenPlanDialog: () => void; // Usage bar visibility showClaudeUsage: boolean; showCodexUsage: boolean; } export function HeaderMobileMenu({ isOpen, onToggle, isWorktreePanelVisible, onWorktreePanelToggle, maxConcurrency, runningAgentsCount, onConcurrencyChange, isAutoModeRunning, onAutoModeToggle, skipVerificationInAutoMode, onSkipVerificationChange, onOpenPlanDialog, showClaudeUsage, showCodexUsage, }: HeaderMobileMenuProps) { return ( <> {/* Usage Bar - show if either provider is authenticated */} {(showClaudeUsage || showCodexUsage) && (
Usage
)} {/* Controls Section */}
Controls {/* Auto Mode Section */}
{/* Auto Mode Toggle */}
onAutoModeToggle(!isAutoModeRunning)} data-testid="mobile-auto-mode-toggle-container" >
Auto Mode
e.stopPropagation()} data-testid="mobile-auto-mode-toggle" />
{/* Skip Verification Toggle */}
onSkipVerificationChange(!skipVerificationInAutoMode)} data-testid="mobile-skip-verification-toggle-container" >
Skip Verification
e.stopPropagation()} data-testid="mobile-skip-verification-toggle" />
{/* Concurrency Control */}
Max Agents {runningAgentsCount}/{maxConcurrency}
onConcurrencyChange(value[0])} min={1} max={10} step={1} className="w-full" data-testid="mobile-concurrency-slider" />
{/* Worktrees Toggle */}
onWorktreePanelToggle(!isWorktreePanelVisible)} data-testid="mobile-worktrees-toggle-container" >
Worktree Bar
e.stopPropagation()} data-testid="mobile-worktrees-toggle" />
{/* Plan Button */}
); }