'use client' import { FormEvent, useState, useEffect } from 'react' import { useParams } from 'next/navigation' import { Album } from '@/entities/album.entity'; import { Song } from '@/entities/song.entity'; import { TimeUtils } from '@/utils/time.util'; import { createSong, getAlbum } from '@/app/actions'; import Button from 'react-bootstrap/Button'; import Modal from 'react-bootstrap/Modal'; export default function Page() { const [album, setAlbum] = useState(); const [show, setShow] = useState(false); const handleClose = () => setShow(false); const handleShow = () => setShow(true); const params = useParams<{ id: string }>(); const id = params.id; useEffect(() => { async function fetchAlbum(id: string) { const response = await getAlbum(parseInt(id)); const data = await response.json(); setAlbum(data); } fetchAlbum(id); }, [id]); const handleSubmit = async (event: FormEvent) => { event.preventDefault(); handleClose(); const formData = new FormData(event.currentTarget); try { const response = await createSong(formData); const data = response.json(); console.log(data); } catch (error) { console.error('Error creating Song:', error); } } if (!album) return
Loading...
return ( <>
{album.title} by {album.artist} ({album.genre})
{album.songs.map((song: Song) => ( ))}
Title Duration
{song.title} {TimeUtils.fancyTimeFormat(song.duration)}
Create Song
); }