Spaces:
Running
Running
File size: 1,062 Bytes
3299552 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import React, { useEffect } from 'react';
import { useNavigate, useLocation } from 'react-router-dom';
import { useAuth } from '../../hooks/useAuth';
import LoadingSpinner from '../UI/LoadingSpinner';
const TokenHandler = () => {
const { refreshToken } = useAuth();
const navigate = useNavigate();
const location = useLocation();
useEffect(() => {
const handleToken = async () => {
try {
await refreshToken();
// Redirect to the intended page or dashboard
const redirectTo = new URLSearchParams(location.search).get('redirect') || '/dashboard';
navigate(redirectTo, { replace: true });
} catch (error) {
console.error('Token refresh error:', error);
navigate('/login', { replace: true });
}
};
handleToken();
}, [refreshToken, navigate, location]);
return (
<div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100vh' }}>
<LoadingSpinner message="Authenticating..." />
</div>
);
};
export default TokenHandler; |