buster/apps/web/src/components/features/auth/SignOutHandler.tsx

31 lines
961 B
TypeScript

import { useNavigate } from '@tanstack/react-router';
import { useCallback } from 'react';
import { useBusterNotifications } from '@/context/BusterNotifications';
import { signOut } from '@/integrations/supabase/signOut';
import { clearAllBrowserStorage } from '@/lib/storage';
export const useSignOut = () => {
const { openErrorMessage } = useBusterNotifications();
const navigate = useNavigate();
const handleSignOut = useCallback(async () => {
try {
// Then perform server-side sign out
await signOut();
try {
// First clear all client-side storage
clearAllBrowserStorage();
} catch (error) {
console.error('Error clearing browser storage', error);
}
} catch (error) {
console.error('Error signing out', error);
openErrorMessage('Error signing out');
} finally {
navigate({ to: '/auth/login' });
}
}, [navigate, openErrorMessage]);
return handleSignOut;
};