update latest

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

View File

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