From e7f5092263bb5d20fb320df92d7eb5d81d824708 Mon Sep 17 00:00:00 2001 From: Manus Date: Wed, 10 Jun 2026 12:57:48 +0000 Subject: [PATCH] =?UTF-8?q?Checkpoint:=20Correction=20du=20clignotement=20?= =?UTF-8?q?sur=20la=20page=20/login=20:=20(1)=20redirectToLoginIfUnauthori?= =?UTF-8?q?zed=20dans=20main.tsx=20ne=20redirige=20plus=20si=20d=C3=A9j?= =?UTF-8?q?=C3=A0=20sur=20/login,=20(2)=20ParametresContext=20d=C3=A9sacti?= =?UTF-8?q?ve=20la=20requ=C3=AAte=20parametres.get=20sur=20/login=20(enabl?= =?UTF-8?q?ed:=20!isLoginPage=20via=20useLocation).=200=20erreur=20TypeScr?= =?UTF-8?q?ipt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/contexts/ParametresContext.tsx | 5 +++++ client/src/main.tsx | 3 +++ 2 files changed, 8 insertions(+) diff --git a/client/src/contexts/ParametresContext.tsx b/client/src/contexts/ParametresContext.tsx index 8fa98c0..dd8ab75 100644 --- a/client/src/contexts/ParametresContext.tsx +++ b/client/src/contexts/ParametresContext.tsx @@ -2,6 +2,7 @@ // Lit depuis la BDD via tRPC, avec fallback sur les valeurs par défaut import { createContext, useContext, useCallback, type ReactNode } from 'react'; +import { useLocation } from 'wouter'; import { trpc } from '@/lib/trpc'; export interface Parametres { @@ -37,10 +38,14 @@ function parseNum(val: string | null | undefined, fallback: number): number { export function ParametresProvider({ children }: { children: ReactNode }) { const utils = trpc.useUtils(); + const [pathname] = useLocation(); + // Ne pas faire la requête sur /login pour éviter les erreurs 401 qui causent des clignotements + const isLoginPage = pathname === '/login'; const { data: rawParams, isLoading } = trpc.parametres.get.useQuery(undefined, { retry: false, refetchOnWindowFocus: false, + enabled: !isLoginPage, }); const setBulkMutation = trpc.parametres.setBulk.useMutation({ diff --git a/client/src/main.tsx b/client/src/main.tsx index 8adf6f5..06eb69f 100644 --- a/client/src/main.tsx +++ b/client/src/main.tsx @@ -18,6 +18,9 @@ const redirectToLoginIfUnauthorized = (error: unknown) => { if (!isUnauthorized) return; + // Ne pas rediriger si on est déjà sur la page de login (évite la boucle) + if (window.location.pathname === '/login') return; + window.location.href = getLoginUrl(); };