import { useAuth } from "../../hooks/useAuth";
import { type JSX } from "react";
import { Navigate } from "react-router-dom";
import AdminDashboardPage from "./AdminDashboardPage";
import StaffDashboardPage from "./StaffDashboardPage";
import InstitutionDashboardPage from "./InstitutionDashboardPage";
import { Role } from "../../constants/navLink.constants";

const Dashboard: React.FC = () => {
  const { user } = useAuth();

  if (!user) return <Navigate to="/login" replace />;

  const dashboards: Record<Role, JSX.Element> = {
    [Role.ADMIN]: <AdminDashboardPage />,
    [Role.STAFF]: <StaffDashboardPage />,
    [Role.INSTITUTION]: <InstitutionDashboardPage />,
  };

  // Render based on user role
  return dashboards[user.role] || <Navigate to="/login" replace />;
};

export default Dashboard;
