50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
import { redirect } from "next/navigation";
|
|
import {
|
|
isUserAuthenticated,
|
|
getServerUserEvaluation,
|
|
getServerSkillCategories,
|
|
getServerTeams,
|
|
} from "@/lib/server-auth";
|
|
import {
|
|
EvaluationClientWrapper,
|
|
WelcomeEvaluationScreen,
|
|
} from "@/components/evaluation";
|
|
import { SkillEvaluation } from "@/components/skill-evaluation";
|
|
|
|
export default async function EvaluationPage() {
|
|
// Vérifier l'authentification
|
|
const isAuthenticated = await isUserAuthenticated();
|
|
|
|
// Si pas de cookie d'authentification, rediriger vers login
|
|
if (!isAuthenticated) {
|
|
redirect("/login");
|
|
}
|
|
|
|
// Charger les données côté serveur
|
|
const [userEvaluation, skillCategories, teams] = await Promise.all([
|
|
getServerUserEvaluation(),
|
|
getServerSkillCategories(),
|
|
getServerTeams(),
|
|
]);
|
|
|
|
// Si pas d'évaluation, afficher l'écran d'accueil évaluation
|
|
if (!userEvaluation) {
|
|
return <WelcomeEvaluationScreen teams={teams} />;
|
|
}
|
|
|
|
return (
|
|
<EvaluationClientWrapper userEvaluation={userEvaluation} teams={teams}>
|
|
<div>
|
|
{/* Skill Evaluation */}
|
|
{skillCategories.length > 0 &&
|
|
userEvaluation.evaluations.length > 0 && (
|
|
<SkillEvaluation
|
|
categories={skillCategories}
|
|
evaluations={userEvaluation.evaluations}
|
|
/>
|
|
)}
|
|
</div>
|
|
</EvaluationClientWrapper>
|
|
);
|
|
}
|