| import React from 'react';
|
| import { Navigate } from 'react-router-dom';
|
| import { useSelector } from 'react-redux';
|
|
|
| const ProtectedRoute = ({ children, requiredRole }) => {
|
| const { isAuthenticated, user } = useSelector(state => state.auth);
|
|
|
|
|
| if (!isAuthenticated) {
|
| return <Navigate to="/login" replace />;
|
| }
|
|
|
|
|
| if (requiredRole && user?.role !== requiredRole) {
|
|
|
| if (user?.role === 'teacher') {
|
| return <Navigate to="/teacher" replace />;
|
| } else if (user?.role === 'student') {
|
| return <Navigate to="/student" replace />;
|
| }
|
| return <Navigate to="/login" replace />;
|
| }
|
|
|
|
|
| return children;
|
| };
|
|
|
| export default ProtectedRoute; |