'use client'; import AppLink from '@/ui/AppLink'; import Button from '@/ui/Button'; import Input from '@/ui/Input'; import cookies from 'js-cookie'; import { useRouter } from 'next/navigation'; import { useForm } from 'react-hook-form'; type RegisterData = { pseudo: string; email: string; passwd: string; firstname: string; lastname: string; description: string; sgroup: string; avatar: string; }; export default function Page() { const { register, handleSubmit, formState: { errors }, setError } = useForm({ defaultValues: { pseudo: '', email: '', passwd: '', firstname: '', lastname: '', description: '', sgroup: '', avatar: '' } }); const router = useRouter(); async function onSubmit(data: RegisterData) { const res = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/register`, { method: 'POST', body: JSON.stringify(data) }); const { username_valid, email_valid } = await res.json(); if (!username_valid || !email_valid) { if (!username_valid) { setError('pseudo', { type: 'manual', message: "Nom d'utilisateur indisponible" }); } if (!email_valid) { setError('email', { type: 'manual', message: 'Email déjà utilisé' }); } } console.log(errors); console.log(username_valid, email_valid); if (res.ok) { const token = res.headers.get('Authorization')?.split(' ')[1]; if (token) cookies.set('token', token); if (cookies.get('token')) router.push('/dashboard'); } } return ( <>

Créer un compte

{/*

En cliquant sur continuer, vous acceptez les{' '} Politique de confidentialité .

*/}

Vous possédez un compte? Se connecter

); }