import { useState } from "react"; import { Plus, Folder, Monitor, Sun, Moon, Settings } from "lucide-react"; import { motion } from "framer-motion"; import { useStore } from "../stores/useStore"; import { ThemeMenu } from "./ThemeMenu"; export function Header() { const { setAddAgentModalOpen, sessions, launchCwd, themePreference, setThemePreference, settingsOpen, setSettingsOpen, } = useStore(); // The theme button's rect while its menu is open (null = closed). const [themeAnchor, setThemeAnchor] = useState(null); // Icon reflects the current preference: an explicit theme shows its face, follow-system // shows the monitor. const ThemeIcon = themePreference.mode === "fixed" ? themePreference.theme === "light" ? Sun : Moon : Monitor; return (
{/* Logo */}
papyrus papyrus
{launchCwd || "~"}
{/* Center - node count */}
0 ? "bg-green-500" : "bg-zinc-600"}`} /> {sessions.size} workstream{sessions.size !== 1 ? "s" : ""}
{/* Right side */}
setAddAgentModalOpen(true)} className="flex items-center gap-1.5 px-3 py-1.5 rounded-md bg-inverse text-inverse-content text-sm font-medium hover:bg-inverse/90 transition-colors" whileHover={{ scale: 1.02 }} whileTap={{ scale: 0.98 }} > New Workstream
setThemeAnchor(null)} />
); }