import React, { useState } from 'react'; import { HashRouter as Router, Routes, Route, Navigate } from 'react-router-dom'; import { Navbar } from './components/Navbar'; import { Hero } from './components/Hero'; import { CourseGrid } from './components/CourseGrid'; import { ManageCourses } from './pages/ManageCourses'; import { MaterialsPage } from './pages/MaterialsPage'; import { CoursePlayerModal } from './components/CoursePlayerModal'; import { AuthProvider, useAuth } from './context/AuthContext'; import { ToastProvider } from './context/ToastContext'; import { Course } from './types'; // Protected Route Component const ProtectedRoute: React.FC<{ children: React.ReactNode; allowedRole?: 'professor' | 'student' }> = ({ children, allowedRole }) => { const { user, isLoading } = useAuth(); if (isLoading) return null; if (!user) { return ; } if (allowedRole && user.role !== allowedRole) { return ; } return <>{children}; }; // Home component interface HomeProps { onPlay: (course: Course) => void; } const Home: React.FC = ({ onPlay }) => { return (
); }; function AppContent() { const [selectedCourse, setSelectedCourse] = useState(null); return (
{/* Navbar with Direct Materials Hub Trigger */} } /> {/* Full Dedicated Materials & Downloads Page */} } /> {/* Professor Route - Protected */} } /> {/* Catch all redirect */} } /> {/* Global Player Modal */} setSelectedCourse(null)} /> {/* Footer */}
Compor HUB | Portal de Cursos & Central de Downloads
© {new Date().getFullYear()} Compor HUB. Todos os direitos reservados.
); } function App() { return ( ); } export default App;