mirror of https://github.com/buster-so/buster.git
31 lines
961 B
TypeScript
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;
|
|
};
|