Checkpoint: Correction du clignotement sur la page /login : (1) redirectToLoginIfUnauthorized dans main.tsx ne redirige plus si déjà sur /login, (2) ParametresContext désactive la requête parametres.get sur /login (enabled: !isLoginPage via useLocation). 0 erreur TypeScript.
This commit is contained in:
@@ -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({
|
||||
|
||||
@@ -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();
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user