Reworking create form
All checks were successful
Music Collection CI Workflow / test (./backend) (push) Successful in 22s
Music Collection CI Workflow / test (./frontend) (push) Successful in 20s
Music Collection CI Workflow / build-and-push-images (./backend/Dockerfile, git.anatid.net/tabris/msuic-collection-backend, ./backend) (push) Successful in 50s
Music Collection CI Workflow / build-and-push-images (./frontend/Dockerfile, git.anatid.net/tabris/music-collection-frontend, ./frontend) (push) Successful in 1m14s
Music Collection CI Workflow / deploy (push) Successful in 22s
All checks were successful
Music Collection CI Workflow / test (./backend) (push) Successful in 22s
Music Collection CI Workflow / test (./frontend) (push) Successful in 20s
Music Collection CI Workflow / build-and-push-images (./backend/Dockerfile, git.anatid.net/tabris/msuic-collection-backend, ./backend) (push) Successful in 50s
Music Collection CI Workflow / build-and-push-images (./frontend/Dockerfile, git.anatid.net/tabris/music-collection-frontend, ./frontend) (push) Successful in 1m14s
Music Collection CI Workflow / deploy (push) Successful in 22s
This commit is contained in:
parent
7945c44782
commit
6d1b996368
@ -4,7 +4,7 @@ export async function createAlbum(formData: FormData) {
|
|||||||
const title = formData.get('title');
|
const title = formData.get('title');
|
||||||
const artist = formData.get('artist');
|
const artist = formData.get('artist');
|
||||||
const genre = formData.get('genre');
|
const genre = formData.get('genre');
|
||||||
await fetch("https://api.anatid.net/album", {
|
return await fetch("https://api.anatid.net/album", {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
headers: { "Content-Type": "application/json" },
|
headers: { "Content-Type": "application/json" },
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
|
@ -1,12 +1,15 @@
|
|||||||
'use client';
|
'use client';
|
||||||
|
|
||||||
import { useState, useEffect } from 'react';
|
import { FormEvent, useState, useEffect } from 'react';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
import { Album } from '@/entities/album.entity';
|
import { Album } from '@/entities/album.entity';
|
||||||
import { CreateAlbumForm } from '@/app/ui/form';
|
// import { CreateAlbumForm } from '@/app/ui/form';
|
||||||
|
import { createAlbum } from '@/app/actions';
|
||||||
|
// import { useRouter } from 'next/navigation';
|
||||||
|
|
||||||
export default function Page() {
|
export default function Page() {
|
||||||
const [albums, setAlbums] = useState<Album[]>([]);
|
const [albums, setAlbums] = useState<Album[]>([]);
|
||||||
|
// const router = useRouter();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
async function fetchAlbums() {
|
async function fetchAlbums() {
|
||||||
@ -19,6 +22,16 @@ export default function Page() {
|
|||||||
|
|
||||||
if (!albums) return <div>Loading...</div>
|
if (!albums) return <div>Loading...</div>
|
||||||
|
|
||||||
|
async function onSubmit(event: FormEvent<HTMLFormElement>) {
|
||||||
|
event.preventDefault()
|
||||||
|
|
||||||
|
const formData = new FormData(event.currentTarget);
|
||||||
|
const response = await createAlbum(formData);
|
||||||
|
|
||||||
|
const data = await response.json()
|
||||||
|
setAlbums(data);
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<ul>
|
<ul>
|
||||||
@ -32,7 +45,12 @@ export default function Page() {
|
|||||||
</Link> by {album.artist} ({album.genre})</li>
|
</Link> by {album.artist} ({album.genre})</li>
|
||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
{CreateAlbumForm()}
|
<form onSubmit={onSubmit}>
|
||||||
|
<span>Album Title</span><input type="text" name="title" /><br/>
|
||||||
|
<span>Artist</span><input type="text" name="artist" /><br/>
|
||||||
|
<span>Genre</span><input type="text" name="genre" /><br/>
|
||||||
|
<button type="submit">Create</button>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
'use client'
|
|
||||||
|
|
||||||
import { createAlbum } from '@/app/actions'
|
|
||||||
|
|
||||||
export function CreateAlbumButton() {
|
|
||||||
return <button formAction={createAlbum}>Create</button>
|
|
||||||
}
|
|
@ -1,8 +1,6 @@
|
|||||||
import { createAlbum } from '@/app/actions'
|
export function CreateAlbumForm(formAction: string) {
|
||||||
|
|
||||||
export function CreateAlbumForm() {
|
|
||||||
return (
|
return (
|
||||||
<form action={createAlbum}>
|
<form action={formAction}>
|
||||||
<input type="text" name="title" />
|
<input type="text" name="title" />
|
||||||
<input type="text" name="artist" />
|
<input type="text" name="artist" />
|
||||||
<input type="text" name="genre" />
|
<input type="text" name="genre" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user