Files
JChargePointProtocol/jcpp-web-ui/src/components/ProtectedRoute.tsx

41 lines
909 B
TypeScript
Raw Normal View History

/*
* 使
* mohan_88888
*
2026-06-10 14:26:04 +08:00
* https://www.bilibili.com/cheese/play/ss942400790
*/
import React from 'react';
import {Navigate} from 'react-router-dom';
import {Spin} from 'antd';
import {useAuth} from '../contexts/AuthContext';
interface ProtectedRouteProps {
children: React.ReactNode;
}
const ProtectedRoute: React.FC<ProtectedRouteProps> = ({ children }) => {
const { isAuthenticated, loading } = useAuth();
if (loading) {
return (
<div style={{
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
height: '100vh'
}}>
<Spin size="large" />
</div>
);
}
if (!isAuthenticated) {
return <Navigate to="/login" replace />;
}
return <>{children}</>;
};
export default ProtectedRoute;