diff --git a/app/[locale]/actions.ts b/app/[locale]/actions.ts index b84e480..f29ec6b 100644 --- a/app/[locale]/actions.ts +++ b/app/[locale]/actions.ts @@ -32,7 +32,7 @@ export async function updateReadState() // On retourne enfin un message de succès si l'opération a réussi. logger.debug( - { source: __filename, count: notifications.count }, + { source: __dirname, count: notifications.count }, "Deleted all notifications" ); diff --git a/app/[locale]/authentication/actions/signin.ts b/app/[locale]/authentication/actions/signin.ts index 65c314b..b3fd40c 100644 --- a/app/[locale]/authentication/actions/signin.ts +++ b/app/[locale]/authentication/actions/signin.ts @@ -37,7 +37,7 @@ export async function signInAccount( // Si c'est le cas, on tente une authentification via le fournisseur // d'authentification externe avant de rediriger l'utilisateur vers // la page de son tableau de bord. - logger.info( { source: __filename, provider }, "Sign in with provider" ); + logger.info( { source: __dirname, provider }, "Sign in with provider" ); await signIn( provider as string, { redirectTo: "/dashboard" @@ -56,7 +56,7 @@ export async function signInAccount( { // Si les données du formulaire sont invalides, on affiche le // premier code d'erreur rencontré. - logger.error( { source: __filename, result }, "Invalid form data" ); + logger.error( { source: __dirname, result }, "Invalid form data" ); return { success: false, @@ -77,7 +77,7 @@ export async function signInAccount( } ); logger.info( - { source: __filename, email: result.output.email }, + { source: __dirname, email: result.output.email }, "Sign in with email" ); @@ -95,7 +95,7 @@ export async function signInAccount( // les informations d'authentification fournies avant de rediriger // l'utilisateur vers la page de son tableau de bord. logger.info( - { source: __filename, email: result.output.email }, + { source: __dirname, email: result.output.email }, "Sign in with credentials" ); @@ -111,7 +111,7 @@ export async function signInAccount( // d'authentification avant de relancer l'erreur. if ( error instanceof AuthError ) { - logger.error( { source: __filename, error }, "Authentication error" ); + logger.error( { source: __dirname, error }, "Authentication error" ); return { success: false, @@ -119,7 +119,7 @@ export async function signInAccount( }; } - logger.error( { source: __filename, error }, "Sign in error" ); + logger.error( { source: __dirname, error }, "Sign in error" ); throw error; } @@ -127,7 +127,7 @@ export async function signInAccount( // On retourne enfin un message d'erreur par défaut au l'utilisateur // ne correspondant à aucun des cas précédents. logger.error( - { source: __filename, email: result.output.email }, + { source: __dirname, email: result.output.email }, "Sign in error" ); diff --git a/app/[locale]/authentication/actions/signout.ts b/app/[locale]/authentication/actions/signout.ts index 8068ed1..3c884e6 100644 --- a/app/[locale]/authentication/actions/signout.ts +++ b/app/[locale]/authentication/actions/signout.ts @@ -13,7 +13,7 @@ export async function signOutAccount() { // On tente de déconnecter l'utilisateur de son compte utilisateur // avant de rediriger celui-ci vers la page d'accueil. - logger.debug( { source: __filename }, "Sign out" ); + logger.debug( { source: __dirname }, "Sign out" ); await signOut( { redirect: false diff --git a/app/[locale]/authentication/actions/signup.ts b/app/[locale]/authentication/actions/signup.ts index cf0cf73..8a7ca8f 100644 --- a/app/[locale]/authentication/actions/signup.ts +++ b/app/[locale]/authentication/actions/signup.ts @@ -39,7 +39,7 @@ export async function signUpAccount( { // Si les données du formulaire sont invalides, on affiche le // premier code d'erreur rencontré. - logger.error( { source: __filename, result }, "Invalid form data" ); + logger.error( { source: __dirname, result }, "Invalid form data" ); return { success: false, @@ -60,7 +60,7 @@ export async function signUpAccount( // Si c'est le cas, on indique à l'utilisateur que l'adresse // électronique fournie est déjà utilisée. logger.error( - { source: __filename, email: result.output.email }, + { source: __dirname, email: result.output.email }, "Email already used" ); @@ -90,7 +90,7 @@ export async function signUpAccount( } ); logger.info( - { source: __filename, email: result.output.email }, + { source: __dirname, email: result.output.email }, "Sign up with email" ); @@ -100,7 +100,7 @@ export async function signUpAccount( // semble ne pas renvoyer de réponse, on affiche un message // d'erreur sur la page d'authentification. logger.error( - { source: __filename, email: result.output.email }, + { source: __dirname, email: result.output.email }, "Email validation request failed" ); @@ -114,7 +114,7 @@ export async function signUpAccount( // On retourne enfin un message de succès à l'utilisateur afin // qu'il puisse valider son adresse électronique. logger.info( - { source: __filename, email: result.output.email }, + { source: __dirname, email: result.output.email }, "Email validation request sent" ); diff --git a/app/[locale]/authentication/components/oauth.tsx b/app/[locale]/authentication/components/oauth.tsx index c3bede1..1200d5b 100644 --- a/app/[locale]/authentication/components/oauth.tsx +++ b/app/[locale]/authentication/components/oauth.tsx @@ -10,10 +10,9 @@ import { toast } from "sonner"; import { Loader2 } from "lucide-react"; import { useForm } from "react-hook-form"; import serverAction from "@/utilities/recaptcha"; -import { useFormState } from "react-dom"; import { useTranslations } from "next-intl"; import { valibotResolver } from "@hookform/resolvers/valibot"; -import { useState, useEffect } from "react"; +import { useEffect, useActionState, startTransition } from "react"; import { Button } from "../../components/ui/button"; import { signInAccount } from "../actions/signin"; @@ -22,8 +21,7 @@ export default function OAuthForm() { // Déclaration des variables d'état. const messages = useTranslations( "form" ); - const [ isLoading, setLoading ] = useState( false ); - const [ signInState, signInAction ] = useFormState( signInAccount, { + const [ signInState, signInAction, isPending ] = useActionState( signInAccount, { success: true, reason: "" } ); @@ -46,8 +44,6 @@ export default function OAuthForm() { // Si ce n'est pas le cas, quelque chose s'est mal passé au // niveau du serveur. - setLoading( false ); - toast.error( messages( "errors.auth_failed" ), { description: messages( "errors.server_error" ) } ); @@ -64,9 +60,6 @@ export default function OAuthForm() return; } - // On informe après qu'une réponse a été reçue. - setLoading( false ); - // On affiche enfin une notification avec la raison fournie // avant de réinitialiser le formulaire en cas de succès. if ( success ) @@ -92,21 +85,20 @@ export default function OAuthForm()