import type { AppId } from "@/lib/api"; import type { VisibleApps } from "@/types"; import { ProviderIcon } from "@/components/ProviderIcon"; interface AppSwitcherProps { activeApp: AppId; onSwitch: (app: AppId) => void; visibleApps?: VisibleApps; compact?: boolean; } const ALL_APPS: AppId[] = ["claude", "codex", "gemini", "opencode", "openclaw"]; const STORAGE_KEY = "cc-switch-last-app"; export function AppSwitcher({ activeApp, onSwitch, visibleApps, compact, }: AppSwitcherProps) { const handleSwitch = (app: AppId) => { if (app === activeApp) return; localStorage.setItem(STORAGE_KEY, app); onSwitch(app); }; const iconSize = 20; const appIconName: Record = { claude: "claude", codex: "openai", gemini: "gemini", opencode: "opencode", openclaw: "openclaw", }; const appDisplayName: Record = { claude: "Claude", codex: "Codex", gemini: "Gemini", opencode: "OpenCode", openclaw: "OpenClaw", }; // Filter apps based on visibility settings (default all visible) const appsToShow = ALL_APPS.filter((app) => { if (!visibleApps) return true; return visibleApps[app]; }); return (
{appsToShow.map((app) => ( ))}
); }