'use client'; import { FormEvent, MouseEvent, useState, useEffect } from 'react'; import Link from 'next/link'; import { Album } from '@/entities/album.entity'; import { createAlbum, getAlbum } from '@/app/actions'; import Button from 'react-bootstrap/Button'; import Modal from 'react-bootstrap/Modal'; import { IconButton } from '@mui/material'; import { Delete, Edit } from '@mui/icons-material'; export default function Page() { const [albums, setAlbums] = useState([]); const [show, setShow] = useState(false); const handleClose = () => setShow(false); const handleShow = () => setShow(true); const [formAlbumTitle, setFormAlbumTitle] = useState(""); const [formAlbumArtist, setFormAlbumArtist] = useState(""); const [formAlbumGenre, setFormAlbumGenre] = useState(""); useEffect(() => { async function fetchAlbums() { const response = await fetch('https://api.anatid.net/album'); const data = await response.json(); setAlbums(data); } fetchAlbums(); }); const handleSubmit = async (event: FormEvent) => { event.preventDefault(); handleClose(); const formData = new FormData(event.currentTarget); try { const response = await createAlbum(formData); const data = response.json(); console.log(data); } catch (error) { console.error('Error creating Album:', error); } } const handleCreate = async () => { setFormAlbumTitle(""); setFormAlbumArtist(""); setFormAlbumGenre(""); handleShow(); } const handleEdit = async (event: MouseEvent) => { const id = event.currentTarget.getAttribute('id'); if (id) { const response = await getAlbum(id); const data = await response.json(); setFormAlbumTitle(data.title); setFormAlbumArtist(data.artist); setFormAlbumGenre(data.genre); handleShow(); } else { console.error("Couldn't get ID of clicked element"); } } if (!albums) return
Loading...
return ( <>
{albums.map((album: Album) => ( ))}
Title Artist Genre Controls
{album.title} {album.artist} {album.genre}
Create Album
); }