import { memo } from "react"; import { useStyletron } from "baseui"; import { LabelSmall } from "baseui/typography"; import { MailOpen } from "lucide-react"; import { PanelHeaderBar } from "./ui"; import { type AgentTab, type Task } from "./view-model"; export const TranscriptHeader = memo(function TranscriptHeader({ task, activeTab, editingField, editValue, onEditValueChange, onStartEditingField, onCommitEditingField, onCancelEditingField, onSetActiveTabUnread, }: { task: Task; activeTab: AgentTab | null | undefined; editingField: "title" | "branch" | null; editValue: string; onEditValueChange: (value: string) => void; onStartEditingField: (field: "title" | "branch", value: string) => void; onCommitEditingField: (field: "title" | "branch") => void; onCancelEditingField: () => void; onSetActiveTabUnread: (unread: boolean) => void; }) { const [css, theme] = useStyletron(); return ( {editingField === "title" ? ( onEditValueChange(event.target.value)} onBlur={() => onCommitEditingField("title")} onKeyDown={(event) => { if (event.key === "Enter") { onCommitEditingField("title"); } else if (event.key === "Escape") { onCancelEditingField(); } }} className={css({ all: "unset", fontWeight: 600, fontSize: "14px", color: theme.colors.contentPrimary, borderBottom: "1px solid rgba(255, 255, 255, 0.3)", minWidth: "80px", maxWidth: "300px", })} /> ) : ( onStartEditingField("title", task.title)} > {task.title} )} {task.branch ? ( editingField === "branch" ? ( onEditValueChange(event.target.value)} onBlur={() => onCommitEditingField("branch")} onKeyDown={(event) => { if (event.key === "Enter") { onCommitEditingField("branch"); } else if (event.key === "Escape") { onCancelEditingField(); } }} className={css({ all: "unset", padding: "2px 8px", borderRadius: "999px", border: "1px solid rgba(255, 255, 255, 0.3)", backgroundColor: "rgba(255, 255, 255, 0.03)", color: "#e4e4e7", fontSize: "11px", whiteSpace: "nowrap", fontFamily: '"IBM Plex Mono", monospace', minWidth: "60px", })} /> ) : ( onStartEditingField("branch", task.branch ?? "")} className={css({ padding: "2px 8px", borderRadius: "999px", border: "1px solid rgba(255, 255, 255, 0.14)", backgroundColor: "rgba(255, 255, 255, 0.03)", color: "#e4e4e7", fontSize: "11px", whiteSpace: "nowrap", fontFamily: '"IBM Plex Mono", monospace', cursor: "pointer", ":hover": { borderColor: "rgba(255, 255, 255, 0.3)" }, })} > {task.branch} ) ) : null}
{activeTab ? ( ) : null} ); });