import {FormEvent, useState} from "react" import { fetchAPI } from "../Fetcher.ts" import { Failure } from "../api/failure.ts" import "../style/form.css" // @ts-ignore import { useNavigate } from "react-router-dom" import {getSession, saveSession} from "../api/session.ts"; export default function AddMemberPage() { const [errors, setErrors] = useState([]) const navigate = useNavigate() async function handleSubmit(e : FormEvent){ e.preventDefault() const { name, mainColor,secondColor,picture } = Object.fromEntries( new FormData(e.target as HTMLFormElement), ) const response = await fetchAPI( "teams", {name,mainColor,secondColor,picture}, "POST" ) if(response.ok){ const teamId = await response.json() navigate("/team/"+teamId+"/members") return } try { const failures = await response.json() setErrors( Object.entries(failures).map(([type, messages]) => ({ type, messages, })), ) } catch (e) { setErrors([ { type: "internal error", messages: ["an internal error occurred."], }, ]) } } return (

Créer une équipe

{errors.map(({ type, messages }) => messages.map((message) => (

{type} : {message}

)), )}
) }