update latest
This commit is contained in:
@ -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",
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user