27 lines
681 B
TypeScript
Executable File
27 lines
681 B
TypeScript
Executable File
import {MouseEvent, useCallback} from 'react';
|
|
import {useAuth} from '@common/auth/use-auth';
|
|
import {useNavigate} from '@common/utils/hooks/use-navigate';
|
|
import {useDialogContext} from '@common/ui/overlays/dialog/dialog-context';
|
|
|
|
export function useAuthClickCapture() {
|
|
const dialogContext = useDialogContext();
|
|
const {isLoggedIn} = useAuth();
|
|
const navigate = useNavigate();
|
|
|
|
return useCallback(
|
|
(e: MouseEvent) => {
|
|
if (!isLoggedIn) {
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
|
|
if (dialogContext) {
|
|
dialogContext.close();
|
|
}
|
|
|
|
navigate('/login');
|
|
}
|
|
},
|
|
[navigate, isLoggedIn, dialogContext]
|
|
);
|
|
}
|