reset mobile context caches on user identity changes

This commit is contained in:
dimitar committed 2026-03-29 15:38:51 +02:00
1 parent aa662a9b74
commit 34e88bdde5
6 files changed
+79 -2

No files matched your search

@@ -6,7 +6,7 @@ import React, {
useCallback,
useRef,
} from "react";
import { useAuth } from "@clerk/clerk-expo";
import { useAuth, useUser } from "@clerk/clerk-expo";
import {
fetchNotifications,
fetchUnreadCount,
@@ -37,6 +37,7 @@ export function NotificationsProvider({
children: React.ReactNode;
}) {
const { getToken, isSignedIn } = useAuth();
const { user } = useUser();
const [notifications, setNotifications] = useState<Notification[]>([]);
const [unreadCount, setUnreadCount] = useState(0);
const [loading, setLoading] = useState(false);
@@ -160,6 +161,19 @@ export function NotificationsProvider({
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [isSignedIn]); // Only run when sign-in state changes
useEffect(() => {
setNotifications([]);
setUnreadCount(0);
setLoading(false);
fetchInProgressRef.current = false;
lastFetchTimeRef.current = 0;
if (user?.id) {
log.debug("Notifications state reset for user", { userId: user.id });
} else {
log.debug("Notifications state reset on sign-out");
}
}, [user?.id]);
// Periodic refresh every 30 seconds
useEffect(() => {
if (!isSignedIn) return;