'use client'; import { useEffect, useState } from 'react'; import { Typography, List, ListItem, ListItemText, Button, Input, ListItemButton, ListItemIcon, Grid, useTheme } from '@mui/material'; import UploadIcon from '@mui/icons-material/Upload'; import AudioPlayer from '@/components/AudioPlayer/AudioPlayer'; import AudiotrackIcon from '@mui/icons-material/Audiotrack'; export default function Home() { const [tracks, setTracks] = useState([]); const [currentTrack, setCurrentTrack] = useState(null); const [uploading, setUploading] = useState(false); const theme = useTheme(); useEffect(() => { fetchTracks(); }, []); const fetchTracks = async () => { const res = await fetch('/api/tracks'); const data = await res.json(); setTracks(data); }; const handleUpload = async (e: React.ChangeEvent) => { if (!e.target.files?.length) return; const formData = new FormData(); formData.append('file', e.target.files[0]); setUploading(true); const res = await fetch('/api/upload', { method: 'POST', body: formData, }); setUploading(false); if (res.ok) { fetchTracks(); } else { console.error(res.status, res.text()) } }; return ( Music The grizzly made some tunes while he was bored grazing the blueberry patches in the high dessert. {tracks.map((track, idx) => ( setCurrentTrack(track)} sx={{ bgcolor: theme.palette.background.paper }}> ))} ); }