'use client'; import { FormEvent, ReactNode, useState } from 'react'; const API_URL = 'https://koodiklinikka-api.fly.dev/invites'; export default function Form() { const [message, setMessage] = useState(null); const [isSubmitting, setIsSubmitting] = useState(false); async function handleSubmit(event: FormEvent) { event.preventDefault(); if (isSubmitting) return; setIsSubmitting(true); const formData = new FormData(event.currentTarget); const response = await fetch(API_URL, { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify(Object.fromEntries(formData)), }); const data = await response.text(); setIsSubmitting(false); if (response.status === 200) { setMessage('✅ Kutsu lähetetty antamaasi sähköpostiosoitteeseen.'); return; } if (response.status === 400 && data === 'invalid_email') { setMessage('⚠️ Tarkasta syöttämäsi sähköpostiosoite'); return; } if (response.status === 400 && data === 'already_invited') { setMessage('♻️ Sähköpostiosoitteeseen on jo lähetetty kutsu'); return; } if (response.status === 400 && data === 'already_in_team') { setMessage( 🤔 Tällä sähköpostilla on jo luotu tunnus.{' '} Nollaa unohtunut salasana . ); return; } setMessage('⚡ Jotain meni pieleen. Yritä hetken päästä uudelleen.'); } return (
{message === null && (

Syötä sähköpostiosoitteesi alle ja saat kutsun Slack-yhteisöömme:

)} {message && (
{message}
)}
); }