update latest

This commit is contained in:
2026-02-03 19:45:52 +05:30
parent b68f09c2aa
commit 888ee65995

View File

@ -1,29 +1,38 @@
// app/faculty/[id]/page.tsx // src/app/faculty/[id]/page.tsx
import Header from "../../../components/Layouts/Header"; import Header from "../../../components/Layouts/Header";
import { Footer } from "../../../components/Layouts/Footer"; import { Footer } from "../../../components/Layouts/Footer";
import TeamMemberDetail from "../../../components/faculty/TeamMemberDetail"; import TeamMemberDetail from "../../../components/faculty/TeamMemberDetail";
import { notFound } from 'next/navigation'; import { notFound } from "next/navigation";
import { FacultyService } from '../../../lib/facultyData'; import { FacultyService } from "../../../lib/facultyData";
import type { Metadata } from 'next'; import type { Metadata } from "next";
// Force dynamic rendering - skip static generation entirely // Force dynamic rendering (OK to keep)
export const dynamic = 'force-dynamic'; export const dynamic = "force-dynamic";
export const dynamicParams = true; export const dynamicParams = true;
export default async function FacultyPage({ type PageProps = {
params, params: {
}: { id: string;
params: Promise<{ id: string }>; };
}) { };
const { id } = await params;
const memberId = parseInt(id);
if (isNaN(memberId)) { export default async function FacultyPage({ params }: PageProps) {
const memberId = Number(params.id);
// Guard against invalid IDs
if (!Number.isInteger(memberId)) {
notFound(); notFound();
} }
let memberData;
try { try {
const memberData = await FacultyService.getFacultyById(memberId); memberData = await FacultyService.getFacultyById(memberId);
} catch (err) {
console.error("Error loading faculty member:", err);
notFound();
}
if (!memberData) { if (!memberData) {
notFound(); notFound();
@ -32,49 +41,55 @@ export default async function FacultyPage({
return ( return (
<> <>
<Header /> <Header />
<TeamMemberDetail memberId={memberId} memberData={memberData} /> <TeamMemberDetail
memberId={memberId}
memberData={memberData}
/>
<Footer /> <Footer />
</> </>
); );
} catch (error) {
console.error('Error loading faculty member:', error);
notFound();
}
} }
// REMOVE generateStaticParams completely - don't include it at all // --------------------
// Metadata generation
// --------------------
export async function generateMetadata(
{ params }: PageProps
): Promise<Metadata> {
const memberId = Number(params.id);
// Generate metadata if (!Number.isInteger(memberId)) {
export async function generateMetadata({ return {
params, title: "Faculty Member Not Found - CMC Vellore",
}: { };
params: Promise<{ id: string }>;
}): Promise<Metadata> {
const { id } = await params;
const memberId = parseInt(id);
if (isNaN(memberId)) {
return { title: 'Faculty Member Not Found - CMC Vellore' };
} }
try { try {
const memberData = await FacultyService.getFacultyById(memberId); const memberData = await FacultyService.getFacultyById(memberId);
if (!memberData) { if (!memberData) {
return { title: 'Faculty Member Not Found - CMC Vellore' }; return {
title: "Faculty Member Not Found - CMC Vellore",
};
} }
return { return {
title: `${memberData.name} - ${memberData.designation} | CMC Vellore`, title: `${memberData.name} - ${memberData.designation} | CMC Vellore`,
description: memberData.description || `${memberData.name} faculty profile at CMC Vellore`, description:
memberData.description ??
`${memberData.name} faculty profile at CMC Vellore`,
openGraph: { openGraph: {
title: `${memberData.name} - ${memberData.designation}`, title: `${memberData.name} - ${memberData.designation}`,
description: memberData.description || `${memberData.name} faculty profile`, description:
memberData.description ??
`${memberData.name} faculty profile`,
images: memberData.image ? [memberData.image] : [], images: memberData.image ? [memberData.image] : [],
}, },
}; };
} catch (error) { } catch (err) {
console.error('Error generating metadata:', error); console.error("Error generating metadata:", err);
return { title: 'Faculty Member - CMC Vellore' }; return {
title: "Faculty Member - CMC Vellore",
};
} }
} }