export function useUserSwitching() { const toast = useToast(); const { fetch: refreshUserSession } = useUserSession(); const { session } = useUserSession(); const isUserSwitched = computed(() => Boolean(session.value?.switchedBy)); async function userSwitchTo(userId: string | number) { try { const { data, errors } = await useGraphqlMutation("userSwitchTo", { userId }); if (errors.length || !data.userSwitchTo) { throw new Error("Une erreur est survenue"); } await refreshUserSession(); } catch (error) { const message = error instanceof Error ? error.message : "Une erreur est survenue"; toast.add({ title: "Échec du changement d'utilisateur", description: message, color: "error" }); } } async function userSwitchBack() { try { const result = await $fetch("/api/switch-back", { method: "POST" }); if (!result.success) { throw new Error("Une erreur est survenue."); } await refreshUserSession(); } catch (error) { const message = error instanceof Error ? error.message : "Une erreur est survenue"; toast.add({ title: "Échec du changement d'utilisateur", description: message, color: "error" }); } } return { isUserSwitched, userSwitchTo, userSwitchBack }; }