refactor: no XHR for currentUser but backside
This commit is contained in:
@@ -7,6 +7,7 @@ import { ThemeProvider } from "@/components/layout/theme-provider";
|
||||
import { Toaster } from "@/components/ui/sonner";
|
||||
import { UserProvider } from "@/hooks/use-user-context";
|
||||
import { NavigationWrapper } from "@/components/layout/navigation-wrapper";
|
||||
import { AuthService, TeamsService } from "@/services";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "PeakSkills - Auto-évaluation de compétences",
|
||||
@@ -14,11 +15,42 @@ export const metadata: Metadata = {
|
||||
"Plateforme d'auto-évaluation de compétences techniques pour les équipes",
|
||||
};
|
||||
|
||||
export default function RootLayout({
|
||||
export default async function RootLayout({
|
||||
children,
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
}) {
|
||||
// Récupérer les infos utilisateur côté serveur
|
||||
let userInfo = null;
|
||||
try {
|
||||
const { userUuid, userProfile } =
|
||||
await AuthService.requireAuthenticatedUser();
|
||||
|
||||
// Récupérer le nom de l'équipe
|
||||
let teamName = "Équipe non définie";
|
||||
if (userProfile.teamId) {
|
||||
try {
|
||||
const team = await TeamsService.getTeamById(userProfile.teamId);
|
||||
if (team) {
|
||||
teamName = team.name;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Failed to fetch team name:", error);
|
||||
}
|
||||
}
|
||||
|
||||
userInfo = {
|
||||
firstName: userProfile.firstName,
|
||||
lastName: userProfile.lastName,
|
||||
teamName,
|
||||
teamId: userProfile.teamId,
|
||||
uuid: userUuid,
|
||||
};
|
||||
} catch (error) {
|
||||
// Utilisateur non authentifié, userInfo reste null
|
||||
console.log("User not authenticated:", error);
|
||||
}
|
||||
|
||||
return (
|
||||
<html lang="en" suppressHydrationWarning>
|
||||
<body
|
||||
@@ -30,7 +62,7 @@ export default function RootLayout({
|
||||
enableSystem
|
||||
disableTransitionOnChange
|
||||
>
|
||||
<UserProvider>
|
||||
<UserProvider initialUserInfo={userInfo}>
|
||||
<NavigationWrapper />
|
||||
<main className="min-h-screen">{children}</main>
|
||||
<Toaster />
|
||||
|
||||
Reference in New Issue
Block a user