feat(logout): implement cache cleanup and service worker unregistration on logout
- Added a new utility, CacheCleanup, to handle clearing caches and unregistering the service worker during user logout. - Enhanced the LoggingOutPage to utilize CacheCleanup for clearing local session and caches before redirecting to the login page. - Introduced ModuleErrorBoundary to manage module loading errors, providing user feedback and options to retry or reload the application. - Updated App component to include global error handlers for improved error management related to module loading issues.
This commit is contained in:
@@ -5,6 +5,7 @@ import { useTranslation } from 'react-i18next';
|
||||
import { useAuthService } from '@/hooks/useAuth';
|
||||
import { useMediaQuery } from 'react-responsive';
|
||||
import { authApiService } from '@/api/auth/auth.api.service';
|
||||
import CacheCleanup from '@/utils/cache-cleanup';
|
||||
|
||||
const LoggingOutPage = () => {
|
||||
const navigate = useNavigate();
|
||||
@@ -14,14 +15,30 @@ const LoggingOutPage = () => {
|
||||
|
||||
useEffect(() => {
|
||||
const logout = async () => {
|
||||
await auth.signOut();
|
||||
await authApiService.logout();
|
||||
setTimeout(() => {
|
||||
window.location.href = '/';
|
||||
}, 1500);
|
||||
try {
|
||||
// Clear local session
|
||||
await auth.signOut();
|
||||
|
||||
// Call backend logout
|
||||
await authApiService.logout();
|
||||
|
||||
// Clear all caches using the utility
|
||||
await CacheCleanup.clearAllCaches();
|
||||
|
||||
// Force a hard reload to ensure fresh state
|
||||
setTimeout(() => {
|
||||
CacheCleanup.forceReload('/auth/login');
|
||||
}, 1000);
|
||||
|
||||
} catch (error) {
|
||||
console.error('Logout error:', error);
|
||||
// Fallback: force reload to login page
|
||||
CacheCleanup.forceReload('/auth/login');
|
||||
}
|
||||
};
|
||||
|
||||
void logout();
|
||||
}, [auth, navigate]);
|
||||
}, [auth]);
|
||||
|
||||
const cardStyles = {
|
||||
width: '100%',
|
||||
|
||||
Reference in New Issue
Block a user