interface ContextUsage {
used: number;
total: number;
percentage: number;
}
interface ChatHeaderProps {
projectPath: string;
onCloseProject: () => void;
contextUsage: ContextUsage;
onClearSession: () => void;
model: string;
availableModels: string[];
claudeModels: string[];
hasAnthropicKey: boolean;
onModelChange: (model: string) => void;
enableTools: boolean;
onToggleTools: (enabled: boolean) => void;
}
const getContextEmoji = (percentage: number): string => {
if (percentage >= 90) return "🔴";
if (percentage >= 75) return "🟡";
return "🟢";
};
export function ChatHeader({
projectPath,
onCloseProject,
contextUsage,
onClearSession,
model,
availableModels,
claudeModels,
hasAnthropicKey,
onModelChange,
enableTools,
onToggleTools,
}: ChatHeaderProps) {
const hasModelOptions = availableModels.length > 0 || claudeModels.length > 0;
return (
{projectPath}
{getContextEmoji(contextUsage.percentage)} {contextUsage.percentage}%
{hasModelOptions ? (
) : (
onModelChange(e.target.value)}
placeholder="Model"
style={{
padding: "6px 12px",
borderRadius: "99px",
border: "none",
fontSize: "0.9em",
background: "#2f2f2f",
color: "#ececec",
outline: "none",
}}
/>
)}
);
}