'use client'; import * as React from 'react'; import { X, Plus, Trash2, Copy, FolderOpen, Download, Upload } from 'lucide-react'; import { Button } from '@/components/ui/Button'; import type { ProjectMetadata } from '@/lib/storage/db'; import { formatDuration } from '@/lib/audio/decoder'; export interface ProjectsDialogProps { open: boolean; onClose: () => void; projects: ProjectMetadata[]; onNewProject: () => void; onLoadProject: (projectId: string) => void; onDeleteProject: (projectId: string) => void; onDuplicateProject: (projectId: string) => void; onExportProject: (projectId: string) => void; onImportProject: () => void; } export function ProjectsDialog({ open, onClose, projects, onNewProject, onLoadProject, onDeleteProject, onDuplicateProject, onExportProject, onImportProject, }: ProjectsDialogProps) { if (!open) return null; const formatDate = (timestamp: number) => { return new Date(timestamp).toLocaleString(undefined, { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit', }); }; return (
{/* Header */}

Projects

{/* Projects List */}
{projects.length === 0 ? (

No projects yet

Create your first project to get started

) : (
{projects.map((project) => (

{project.name}

{project.description && (

{project.description}

)}
{project.trackCount} tracks {formatDuration(project.duration)} {project.sampleRate / 1000}kHz Updated {formatDate(project.updatedAt)}
))}
)}
); }