"use client" import { useRef, useCallback } from "react" import { cn } from "@lib/utils" import { dmSansClassName } from "@/lib/fonts" import { Maximize2, Plus, Loader2 } from "lucide-react" import { useProject } from "@/stores" import { useQuickNoteDraft } from "@/stores/quick-note-draft" interface QuickNoteCardProps { onSave: (content: string) => void onMaximize: (content: string) => void isSaving?: boolean } export function QuickNoteCard({ onSave, onMaximize, isSaving = false, }: QuickNoteCardProps) { const textareaRef = useRef(null) const { selectedProject } = useProject() const { draft, setDraft } = useQuickNoteDraft(selectedProject) const handleChange = useCallback( (e: React.ChangeEvent) => { setDraft(e.target.value) }, [setDraft], ) const handleKeyDown = useCallback( (e: React.KeyboardEvent) => { if ((e.metaKey || e.ctrlKey) && e.key === "Enter") { e.preventDefault() if (draft.trim() && !isSaving) { onSave(draft) } } }, [draft, isSaving, onSave], ) const handleSaveClick = useCallback(() => { if (draft.trim() && !isSaving) { onSave(draft) } }, [draft, isSaving, onSave]) const handleMaximizeClick = useCallback(() => { onMaximize(draft) }, [draft, onMaximize]) const canSave = draft.trim().length > 0 && !isSaving return (