import { Link } from 'react-router-dom'; import logo from '@assets/images/logo.svg'; import { useQuery } from '@tanstack/react-query'; import { useState } from 'react'; import { useCookies } from 'react-cookie'; import type { Token } from '../types'; import { toastError } from '@controllers/Toasts'; const Login = () => { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [cookies, setCookie] = useCookies(['token']); const { refetch } = useQuery( ['login'], async () => { const response = await fetch('/api/auth/login', { method: 'POST', body: JSON.stringify({ email, password }), mode: 'cors', headers: { 'Content-Type': 'application/json', }, }); const data = await response.json(); if (data.error) { throw data.error; } return data; }, { onSuccess: (data: Token) => { setCookie('token', data.token, { path: '/', expires: new Date(data.expiresAt) }); }, onError: (error) => { toastError(error as string); }, enabled: false, refetchOnWindowFocus: false, } ); const onSubmit = async (e: React.FormEvent) => { e.preventDefault(); await refetch(); }; return ( <>
Groupomania
onSubmit(e)}>
setEmail(e.target.value)} />
setPassword(e.target.value)} />

Enregistrez un nouveau compte

); }; export default Login;