import type { Did } from "@atcute/lexicons"; import { useState } from "react"; import { HandleLink } from "@/components/HandleLink"; import { FORMAT_GROUPS } from "@/lib/format-utils"; interface DeckHeaderProps { name: string; format?: string; onNameChange: (name: string) => void; onFormatChange: (format: string) => void; readOnly?: boolean; /** Owner DID - when provided, shows "by @handle" under the title */ did?: Did; } export function DeckHeader({ name, format, onNameChange, onFormatChange, readOnly = false, did, }: DeckHeaderProps) { const [isEditingName, setIsEditingName] = useState(false); const [editedName, setEditedName] = useState(name); const handleNameClick = () => { if (readOnly) return; setEditedName(name); setIsEditingName(true); }; const handleNameSubmit = () => { onNameChange(editedName || "Untitled Deck"); setIsEditingName(false); }; const handleNameKeyDown = (e: React.KeyboardEvent) => { if (e.key === "Enter") { handleNameSubmit(); } else if (e.key === "Escape") { setEditedName(name); setIsEditingName(false); } }; return (