feat: login / logout toast
This commit is contained in:
@@ -3,6 +3,7 @@ import type { FormSubmitEvent } from "@nuxt/ui";
|
|||||||
const isRedirecting = ref(false);
|
const isRedirecting = ref(false);
|
||||||
|
|
||||||
export function useAuthConnexion() {
|
export function useAuthConnexion() {
|
||||||
|
const toast = useToast();
|
||||||
const { fetch: refreshUserSession } = useUserSession();
|
const { fetch: refreshUserSession } = useUserSession();
|
||||||
const routeRedirect = useRoute().query.redirect as string || undefined;
|
const routeRedirect = useRoute().query.redirect as string || undefined;
|
||||||
|
|
||||||
@@ -21,10 +22,22 @@ export function useAuthConnexion() {
|
|||||||
if (!success) {
|
if (!success) {
|
||||||
throw new Error(message);
|
throw new Error(message);
|
||||||
}
|
}
|
||||||
|
toast.add({
|
||||||
|
title: "Connexion réussie",
|
||||||
|
color: "success",
|
||||||
|
description: message,
|
||||||
|
duration: 3000,
|
||||||
|
});
|
||||||
await redirectTo(redirect);
|
await redirectTo(redirect);
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
|
toast.add({
|
||||||
|
title: "Erreur de connexion",
|
||||||
|
color: "error",
|
||||||
|
description: error instanceof Error ? error.message : "Une erreur est survenue lors de la connexion.",
|
||||||
|
duration: 5000,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,10 +48,22 @@ export function useAuthConnexion() {
|
|||||||
if (!result.success) {
|
if (!result.success) {
|
||||||
throw new Error("Échec de la déconnexion.");
|
throw new Error("Échec de la déconnexion.");
|
||||||
}
|
}
|
||||||
|
toast.add({
|
||||||
|
title: "Déconnexion réussie",
|
||||||
|
color: "success",
|
||||||
|
description: "Vous avez été déconnecté avec succès.",
|
||||||
|
duration: 3000,
|
||||||
|
});
|
||||||
await redirectTo(redirect);
|
await redirectTo(redirect);
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
|
toast.add({
|
||||||
|
title: "Erreur de déconnexion",
|
||||||
|
color: "error",
|
||||||
|
description: error instanceof Error ? error.message : "Une erreur est survenue lors de la déconnexion.",
|
||||||
|
duration: 5000,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,21 @@
|
|||||||
export default defineEventHandler(async (event) => {
|
export default defineEventHandler(async (event) => {
|
||||||
try {
|
try {
|
||||||
const variables = await readBody<AuthLoginForm>(event);
|
const variables = await readBody<AuthLoginForm>(event);
|
||||||
const { data, error } = await useServerGraphQLMutation(event, "AuthLogin", variables);
|
const { data } = await useServerGraphQLMutation(event, "AuthLogin", variables);
|
||||||
if (!data?.login) {
|
if (!data?.login) {
|
||||||
throw new Error(error?.message || "Une erreur est survenue lors de la connexion.");
|
throw new Error("INVALID_LOGIN");
|
||||||
}
|
}
|
||||||
if (!await handleLogin(event, data)) {
|
if (!await handleLogin(event, data)) {
|
||||||
throw new Error("Échec de la connexion.");
|
throw new Error("LOGIN_FAILED");
|
||||||
}
|
}
|
||||||
return { success: true, message: "Connexion réussie" };
|
return { success: true, message: "Connexion réussie" };
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
const message = error instanceof Error ? error.message : "Une erreur est survenue lors de la déconnexion.";
|
const messages = {
|
||||||
return { success: false, message };
|
INVALID_LOGIN: "Identifiants invalides. Veuillez réessayer.",
|
||||||
|
LOGIN_FAILED: "Une erreur est survenue lors de la connexion. Veuillez réessayer plus tard.",
|
||||||
|
};
|
||||||
|
const message = (error instanceof Error && error.message in messages) ? error.message : "LOGIN_FAILED";
|
||||||
|
return { success: false, message: messages[message as keyof typeof messages] };
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user