diff --git a/src/app/faculty/[id]/page.tsx b/src/app/faculty/[id]/page.tsx
index 5228746..b1e0f43 100644
--- a/src/app/faculty/[id]/page.tsx
+++ b/src/app/faculty/[id]/page.tsx
@@ -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 (
- <>
-
-
-
- >
- );
- } 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 (
+ <>
+
+
+
+ >
+ );
}
-// REMOVE generateStaticParams completely - don't include it at all
+// --------------------
+// Metadata generation
+// --------------------
+export async function generateMetadata(
+ { params }: PageProps
+): Promise {
+ const memberId = Number(params.id);
-// Generate metadata
-export async function generateMetadata({
- params,
-}: {
- params: Promise<{ id: string }>;
-}): Promise {
- 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",
+ };
}
-}
\ No newline at end of file
+}