'use client'; import { useState, useRef } from 'react'; import { useFileOperations } from '@/hooks/use-file-operations'; import { ExportDialog } from '@/components/modals/export-dialog'; import { NewImageDialog } from '@/components/modals/new-image-dialog'; import { FileImage, FolderOpen, Download, Save, ChevronDown, } from 'lucide-react'; import { cn } from '@/lib/utils'; export function FileMenu() { const { createNewImage, handleFileInput, exportImage, saveProject, } = useFileOperations(); const [isMenuOpen, setIsMenuOpen] = useState(false); const [isNewDialogOpen, setIsNewDialogOpen] = useState(false); const [isExportDialogOpen, setIsExportDialogOpen] = useState(false); const fileInputRef = useRef(null); const handleOpenFile = () => { fileInputRef.current?.click(); setIsMenuOpen(false); }; const handleFileChange = async (e: React.ChangeEvent) => { const file = e.target.files?.[0]; if (file) { await handleFileInput(file); } // Reset input if (fileInputRef.current) { fileInputRef.current.value = ''; } }; const handleSaveProject = () => { saveProject('project'); setIsMenuOpen(false); }; return ( <>
{isMenuOpen && ( <>
setIsMenuOpen(false)} />
)}
{/* Hidden file input */} {/* Dialogs */} setIsNewDialogOpen(false)} onCreate={createNewImage} /> setIsExportDialogOpen(false)} onExport={exportImage} /> ); }