mirror of
https://github.com/mblanke/ThreatHunt.git
synced 2026-03-01 14:00:20 -05:00
38 lines
828 B
TypeScript
38 lines
828 B
TypeScript
import React from 'react';
|
|
import { Navigate } from 'react-router-dom';
|
|
import { useAuth } from '../context/AuthContext';
|
|
|
|
interface PrivateRouteProps {
|
|
children: React.ReactNode;
|
|
}
|
|
|
|
const PrivateRoute: React.FC<PrivateRouteProps> = ({ children }) => {
|
|
const { isAuthenticated, loading } = useAuth();
|
|
|
|
if (loading) {
|
|
return (
|
|
<div style={styles.container}>
|
|
<div style={styles.spinner}>Loading...</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
return isAuthenticated ? <>{children}</> : <Navigate to="/login" />;
|
|
};
|
|
|
|
const styles: { [key: string]: React.CSSProperties } = {
|
|
container: {
|
|
display: 'flex',
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
minHeight: '100vh',
|
|
backgroundColor: '#f5f5f5',
|
|
},
|
|
spinner: {
|
|
fontSize: '18px',
|
|
color: '#666',
|
|
},
|
|
};
|
|
|
|
export default PrivateRoute;
|