diff --git a/frontend/public/locales/en/translation.json b/frontend/public/locales/en/translation.json index 838d68d1..dd9bad2a 100644 --- a/frontend/public/locales/en/translation.json +++ b/frontend/public/locales/en/translation.json @@ -109,7 +109,8 @@ "code_is_required": "Language code is required", "text_is_required": "Text is required", "invalid_file_type": "Invalid file type. Please select a file in the supported format.", - "select_category": "Select a flow" + "select_category": "Select a flow", + "logout_failed": "Something went wrong during logout" }, "menu": { "terms": "Terms of Use", diff --git a/frontend/public/locales/fr/translation.json b/frontend/public/locales/fr/translation.json index 521b911a..7ce2c0dd 100644 --- a/frontend/public/locales/fr/translation.json +++ b/frontend/public/locales/fr/translation.json @@ -109,7 +109,8 @@ "code_is_required": "Le code est requis", "text_is_required": "Texte requis", "invalid_file_type": "Type de fichier invalide. Veuillez choisir un fichier dans un format pris en charge.", - "select_category": "Sélectionner une catégorie" + "select_category": "Sélectionner une catégorie", + "logout_failed": "Une erreur s'est produite lors de la déconnexion" }, "menu": { "terms": "Conditions d'utilisation", diff --git a/frontend/src/contexts/auth.context.tsx b/frontend/src/contexts/auth.context.tsx index dfdc1089..a2faf186 100644 --- a/frontend/src/contexts/auth.context.tsx +++ b/frontend/src/contexts/auth.context.tsx @@ -6,7 +6,6 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ - import getConfig from "next/config"; import { useRouter } from "next/router"; import { createContext, ReactNode, useEffect, useState } from "react"; @@ -22,7 +21,6 @@ import { Progress } from "@/app-components/displays/Progress"; import { useLogout } from "@/hooks/entities/auth-hooks"; import { useApiClient } from "@/hooks/useApiClient"; import { CURRENT_USER_KEY, PUBLIC_PATHS } from "@/hooks/useAuth"; -import { useToast } from "@/hooks/useToast"; import { useTranslate } from "@/hooks/useTranslate"; import { RouterType } from "@/services/types"; import { IUser } from "@/types/user.types"; @@ -54,18 +52,16 @@ export const AuthProvider = ({ children }: AuthProviderProps): JSX.Element => { const router = useRouter(); const [search, setSearch] = useState(""); const hasPublicPath = PUBLIC_PATHS.includes(router.pathname); - const { i18n, t } = useTranslate(); - const { toast } = useToast(); + const { i18n } = useTranslate(); const [isReady, setIsReady] = useState(false); const queryClient = useQueryClient(); const updateLanguage = (lang: string) => { i18n.changeLanguage(lang); }; - const { mutateAsync: logoutSession } = useLogout(); + const { mutate: logoutSession } = useLogout(); const logout = async () => { updateLanguage(publicRuntimeConfig.lang.default); - await logoutSession(); - toast.success(t("message.logout_success")); + logoutSession(); }; const authRedirection = async (isAuthenticated: boolean) => { if (isAuthenticated) { diff --git a/frontend/src/hooks/entities/auth-hooks.ts b/frontend/src/hooks/entities/auth-hooks.ts index c1fa01a1..e3a1b07b 100755 --- a/frontend/src/hooks/entities/auth-hooks.ts +++ b/frontend/src/hooks/entities/auth-hooks.ts @@ -22,6 +22,8 @@ import { useSocket } from "@/websocket/socket-hooks"; import { useFind } from "../crud/useFind"; import { useApiClient } from "../useApiClient"; import { CURRENT_USER_KEY, useAuth, useLogoutRedirection } from "../useAuth"; +import { useToast } from "../useToast"; +import { useTranslate } from "../useTranslate"; export const useLogin = ( options?: Omit< @@ -54,6 +56,8 @@ export const useLogout = ( const { apiClient } = useApiClient(); const { socket } = useSocket(); const { logoutRedirection } = useLogoutRedirection(); + const { toast } = useToast(); + const { t } = useTranslate(); return useMutation({ ...options, @@ -65,6 +69,10 @@ export const useLogout = ( onSuccess: async () => { queryClient.removeQueries([CURRENT_USER_KEY]); await logoutRedirection(); + toast.success(t("message.logout_success")); + }, + onError: () => { + toast.error(t("message.logout_failed")); }, }); };