114 lines
3.9 KiB
JavaScript
114 lines
3.9 KiB
JavaScript
import Layout from "@/components/layout/Layout";
|
||
import Link from "next/link";
|
||
import { notFound } from "next/navigation";
|
||
import { areaOfInjuryData } from "@/utils/AreaOfInjery.utils";
|
||
|
||
export async function generateStaticParams() {
|
||
return areaOfInjuryData.map((item) => ({
|
||
slug: item.slug,
|
||
}));
|
||
}
|
||
|
||
export async function generateMetadata({ params }) {
|
||
const service = areaOfInjuryData.find((item) => item.slug === params.slug);
|
||
|
||
if (!service) {
|
||
return {
|
||
title: "Area of Injury Not Found – Rapharehab Clinic",
|
||
description: "The requested area of injury page could not be found.",
|
||
};
|
||
}
|
||
|
||
return {
|
||
title: `${service.metaTitle} – Rapharehab Clinic`,
|
||
description: service.metaDiscription || "Expert physiotherapy and pain relief treatments.",
|
||
};
|
||
}
|
||
|
||
export default function AreaOfInjuryDetails({ params }) {
|
||
const service = areaOfInjuryData.find((item) => item.slug === params.slug);
|
||
|
||
if (!service) return notFound();
|
||
|
||
const altText = service.title ? service.title.toUpperCase() : "AREA OF INJURY";
|
||
|
||
return (
|
||
<Layout
|
||
headerStyle={1}
|
||
footerStyle={1}
|
||
breadcrumbTitle={service.title}
|
||
bannerImage={service.bannerImage}
|
||
>
|
||
<section className="service-details pt_90 pb_90">
|
||
<div className="auto-container">
|
||
<div className="row clearfix">
|
||
{/* Sidebar */}
|
||
<div className="col-lg-4 col-md-12 col-sm-12 sidebar-side">
|
||
<div className="default-sidebar service-sidebar mr_15">
|
||
{/* Categories */}
|
||
<div className="sidebar-widget category-widget">
|
||
<div className="widget-title">
|
||
<h3>Area Of Injury</h3>
|
||
</div>
|
||
<div className="widget-content">
|
||
<ul className="category-list clearfix">
|
||
{areaOfInjuryData.map((cat) => (
|
||
<li key={cat.id}>
|
||
<Link
|
||
href={`/area-of-injury/${cat.slug}`}
|
||
className={cat.slug === service.slug ? "current" : ""}
|
||
>
|
||
{cat.title}
|
||
</Link>
|
||
</li>
|
||
))}
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Sidebar Service Card */}
|
||
<div className="service-block-one">
|
||
<div className="inner-box">
|
||
<div className="image-box">
|
||
<figure className="image">
|
||
<img src={service.image} alt={altText} />
|
||
</figure>
|
||
</div>
|
||
<div className="lower-content">
|
||
<div className="icon-box">
|
||
<img src={service.icon} alt={altText} />
|
||
</div>
|
||
<h3>{service.title}</h3>
|
||
<p>{service.shortDescription}</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Main Content */}
|
||
<div className="col-lg-8 col-md-12 col-sm-12 content-side">
|
||
<div className="service-details-content">
|
||
<div className="content-one mb_60">
|
||
{/* Main Image */}
|
||
<figure className="image-box mb_40">
|
||
<img src={service.mainImage} alt={altText} />
|
||
</figure>
|
||
<div className="text-box">
|
||
<h2>{service.title}</h2>
|
||
</div>
|
||
|
||
{/* Dynamic Content */}
|
||
<div
|
||
className="service-details-description"
|
||
dangerouslySetInnerHTML={{ __html: service.content }}
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</Layout>
|
||
);
|
||
} |