"use client"; import { useState, useEffect } from "react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, } from "@/components/ui/dialog"; interface SaveDialogProps { open: boolean; onOpenChange: (open: boolean) => void; onSave: (filename: string) => void; defaultFilename: string; } export function SaveDialog({ open, onOpenChange, onSave, defaultFilename, }: SaveDialogProps) { const [filename, setFilename] = useState(defaultFilename); useEffect(() => { if (open) { setFilename(defaultFilename); } }, [open, defaultFilename]); const handleSave = () => { const finalFilename = filename.trim() || defaultFilename; onSave(finalFilename); onOpenChange(false); }; const handleKeyDown = (e: React.KeyboardEvent) => { if (e.key === "Enter") { e.preventDefault(); handleSave(); } }; return ( Save Diagram
setFilename(e.target.value)} onKeyDown={handleKeyDown} placeholder="Enter filename" autoFocus onFocus={(e) => e.target.select()} className="rounded-r-none border-r-0 focus-visible:z-10" /> .drawio
); }