import React, { useState } from 'react'; import { Card } from '../../ui/card'; import { Button } from '../../ui/button'; import { Badge } from '../../ui/badge'; import { Input } from '../../ui/input'; import { ArrowLeft, Play, Users, FileAudio, Save, Trash2, HardDrive, Share2, MoreHorizontal, Activity, History, Upload } from 'lucide-react'; import { useToast } from '../../../context/ToastContext'; interface ProjectDetailViewProps { project: any; onBack: () => void; onUpdate: (updatedProject: any) => void; onDelete: (id: string) => void; } export const ProjectDetailView: React.FC = ({ project, onBack, onUpdate, onDelete }) => { const { addToast } = useToast(); const [activeTab, setActiveTab] = useState<'overview' | 'files' | 'settings'>('overview'); const [_editMode, setEditMode] = useState(false); const [formData, setFormData] = useState(project); // Mock Files for this project const [projectFiles, _setProjectFiles] = useState([ { id: 'f1', name: 'Demo_v3.mp3', size: '4.2 MB', type: 'audio', date: '2h ago' }, { id: 'f2', name: 'Stems_Drums.zip', size: '45 MB', type: 'archive', date: '1d ago' }, { id: 'f3', name: 'Vocals_Dry.wav', size: '22 MB', type: 'audio', date: '1d ago' }, ]); const handleSaveSettings = () => { onUpdate(formData); setEditMode(false); addToast("Project settings saved", "success"); }; const handleDelete = () => { if (confirm("Are you sure? This action cannot be undone.")) { onDelete(project.id); } }; return (
{/* Header */}

{project.name}

{project.bpm} BPM {project.key} Updated {project.modified}
{/* Navigation Tabs */}
{['overview', 'files', 'settings'].map(tab => ( ))}
{/* Main Content Area */}
{activeTab === 'overview' && ( <>

Project Status

Completion {project.progress}%
Status
{project.status}
Version
v1.4.2

Recent Activity

{[1, 2, 3].map((_, i) => (
You uploaded a new bounce.
2 hours ago
))}
)} {activeTab === 'files' && (

Project Files

{projectFiles.map(file => (
{file.type === 'audio' ? : }
{file.name}
{file.size} • {file.date}
))}
)} {activeTab === 'settings' && (

Project Settings

setFormData({...formData, name: e.target.value})} /> setFormData({...formData, status: e.target.value})} />
setFormData({...formData, bpm: e.target.value})} /> setFormData({...formData, key: e.target.value})} />

Danger Zone

Permanently delete this project and all associated files.

)}
{/* Sidebar */}

Collaborators

+2

Versions

v1.4 (Current) 2h ago
v1.3 1d ago
v1.2 3d ago
); };