2025-09-02 19:50:17 -04:00
|
|
|
import Image from "next/image";
|
|
|
|
|
import Link from "next/link";
|
2026-01-22 10:11:08 -06:00
|
|
|
import header from "./Header.module.css";
|
2026-02-19 18:59:21 -06:00
|
|
|
import { cookies } from "next/headers";
|
2026-02-20 18:58:04 -06:00
|
|
|
import { jwtVerify } from "jose";
|
2026-02-20 19:04:07 -06:00
|
|
|
import HeaderNavigation from "./HeaderNavigation";
|
2026-02-20 18:58:04 -06:00
|
|
|
|
|
|
|
|
const secret = new TextEncoder().encode(process.env.JWT_SECRET);
|
2025-12-08 18:02:33 -06:00
|
|
|
|
2026-01-22 10:11:08 -06:00
|
|
|
export default async function Header() {
|
2026-02-20 18:58:04 -06:00
|
|
|
const cookieStore = cookies();
|
|
|
|
|
const token = (await cookieStore).get("token")?.value;
|
|
|
|
|
|
|
|
|
|
let role: number = 5;
|
|
|
|
|
|
|
|
|
|
if (token) {
|
|
|
|
|
try {
|
|
|
|
|
const { payload } = await jwtVerify(token, secret);
|
|
|
|
|
role = payload.role as number;
|
|
|
|
|
} catch (error) {
|
|
|
|
|
role = 5;
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-10-29 14:28:50 -06:00
|
|
|
|
2025-09-28 01:59:16 -06:00
|
|
|
return (
|
2025-12-08 18:02:33 -06:00
|
|
|
<header className={header.header}>
|
2025-09-28 01:59:16 -06:00
|
|
|
<Link
|
|
|
|
|
href="https://www.unam.mx/"
|
|
|
|
|
target="_blank"
|
|
|
|
|
className={header.center}
|
2026-01-22 10:11:08 -06:00
|
|
|
style={{ display: "flex", alignItems: "center", margin: "10px 5px" }}
|
2025-10-29 14:28:50 -06:00
|
|
|
>
|
2025-12-08 18:02:33 -06:00
|
|
|
<div className={header.logoContainer}>
|
|
|
|
|
<Image
|
|
|
|
|
className={header.logo}
|
|
|
|
|
src="/logo_fes.png"
|
|
|
|
|
alt="Logo FES"
|
|
|
|
|
fill
|
|
|
|
|
style={{ objectFit: "contain" }}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</Link>
|
|
|
|
|
<div className={header.yellowPart}></div>
|
|
|
|
|
<div className={header.containerBarNav}>
|
2026-02-20 19:04:07 -06:00
|
|
|
<HeaderNavigation role={role} />
|
2025-09-28 01:59:16 -06:00
|
|
|
</div>
|
|
|
|
|
</header>
|
|
|
|
|
);
|
2025-09-02 19:50:17 -04:00
|
|
|
}
|