diff --git a/apps/mobile/src/app/(tabs)/_layout.tsx b/apps/mobile/src/app/(tabs)/_layout.tsx index ce6bc76..0e8287d 100644 --- a/apps/mobile/src/app/(tabs)/_layout.tsx +++ b/apps/mobile/src/app/(tabs)/_layout.tsx @@ -1,6 +1,6 @@ import { Redirect, Tabs } from "expo-router"; import { Text } from "react-native"; -import { useQuery } from "@tanstack/react-query"; +import { useQuery, useQueryClient } from "@tanstack/react-query"; import { api, getConsent, type ConsentStatus } from "@/lib/api"; import { persistLanguageTag, useAuth } from "@/lib/auth"; import { colors } from "@/lib/theme"; @@ -40,6 +40,7 @@ export default function TabsLayout() { const onboardingCompleted = useAuth((s) => s.onboardingCompleted); const onboardingStep = useAuth((s) => s.onboardingStep); useApplyLocalePreferences(Boolean(accessToken)); + const queryClient = useQueryClient(); const { data: consent, isLoading: consentLoading } = useQuery({ queryKey: ["consent"], @@ -51,7 +52,11 @@ export default function TabsLayout() { if (!accessToken) return ; if (consentLoading) return null; if (!consent?.accepted || consent.version !== TERMS_VERSION) { - return {}} />; + return ( + void queryClient.invalidateQueries({ queryKey: ["consent"] })} + /> + ); } // Progressive onboarding (FAS 1b): only block if step A not done if (!onboardingCompleted && onboardingStep === "a") return ;