import { Navigate } from "react-router";
import BottomNavigation from "~/components/bottom-nav";
import Error from "~/components/error";
import GradesPage from "~/components/grades";
import Loader from "~/components/loader";
import { MainLayout } from "~/layout";
import { AUTH_ERROR, useUser } from "~/lib/api";
import { forceReload } from "~/lib/utils";

export default function Grade() {
  const { user, isLoading, error } = useUser();

  if (isLoading) {
    return <Loader />;
  }
  if (error?.message === AUTH_ERROR) {
    return <Navigate to="/login" replace />;
  }
  if (error) {
    return <Error message={error.message} />;
  }

  return (
    <MainLayout
      header={
        <h1 className="text-2xl font-bold" onClick={forceReload}>
          Khollis&eacute; - {user.className} ⚔️
        </h1>
      }
    >
      <GradesPage user={user} />
      <BottomNavigation activeId="grades" />
    </MainLayout>
  );
}
