generatestatic params updated for accident, area-ofinjury, rehabilitation, team pages build error cleared

This commit is contained in:
Alaguraj0361 2025-08-29 16:15:34 +05:30
parent 5099c968c0
commit 597102c637
4 changed files with 296 additions and 264 deletions

View File

@ -1,24 +1,36 @@
'use client';
import Layout from "@/components/layout/Layout";
import Link from "next/link";
import { useParams, notFound } from "next/navigation";
import { notFound } from "next/navigation";
import Accident from "@/utils/Accident.utils";
export default function AccidentDetailsPage() {
const params = useParams();
// ✅ Generate static paths for export
export async function generateStaticParams() {
return Accident.map((item) => ({
slug: item.slug,
}));
}
export default function AccidentDetailsPage({ params }) {
const service = Accident.find((item) => item.slug === params.slug);
if (!service) return notFound();
return (
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle={`${service.title}`} bannerImage={service.bannerImage}>
<Layout
headerStyle={2}
footerStyle={1}
breadcrumbTitle={`${service.title}`}
bannerImage={service.bannerImage}
>
<section className="service-details pt_120 pb_120">
<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>Categories</h3></div>
<div className="widget-content">
@ -37,6 +49,7 @@ export default function AccidentDetailsPage() {
</div>
</div>
{/* Service Card */}
<div className="service-block-one">
<div className="inner-box">
<div className="image-box">
@ -44,10 +57,7 @@ export default function AccidentDetailsPage() {
<img src={service.mainImage} alt={service.title} />
</figure>
<div className="icon-box">
<img
src={service.icon}
alt={`${service.title} Icon`}
/>
<img src={service.icon} alt={`${service.title} Icon`} />
</div>
</div>
<div className="lower-content">

View File

@ -1,136 +1,139 @@
"use client";
import Layout from "@/components/layout/Layout";
import Link from "next/link";
import { useParams, notFound } from "next/navigation";
import { notFound } from "next/navigation";
import { areaOfInjuryData } from "@/utils/AreaOfInjery.utils";
export default function AreaOfInjuryDetails() {
const params = useParams();
const service = areaOfInjuryData.find((item) => item.slug === params.slug);
if (!service) return notFound();
return (
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle={service.title} bannerImage={service.bannerImage}>
<section className="service-details pt_120 pb_120">
<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>Categories</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={service.title} />
</figure>
<div className="icon-box">
<img
src={service.icon}
alt={`${service.title} Icon`}
/>
</div>
</div>
<div className="lower-content">
<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={service.title} />
</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>
{/* Subscribe Section */}
<section className="subscribe-section">
<div className="auto-container">
<div className="inner-container">
<div className="row align-items-center">
<div className="col-lg-6 col-md-12 col-sm-12 text-column">
<div className="text-box">
<h2>
<span>Subscribe</span> for the exclusive updates!
</h2>
</div>
</div>
<div className="col-lg-6 col-md-12 col-sm-12 form-column">
<div className="form-inner">
<form method="post" action="contact">
<div className="form-group">
<input
type="email"
name="email"
placeholder="Enter Your Email Address"
required
/>
<button type="submit" className="theme-btn btn-one">
<span>Subscribe Now</span>
</button>
</div>
<div className="form-group">
<div className="check-box">
<input className="check" type="checkbox" id="checkbox1" />
<label htmlFor="checkbox1">
I agree to the <Link href="/">Privacy Policy.</Link>
</label>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
</Layout>
);
// ✅ Static params for export
export async function generateStaticParams() {
return areaOfInjuryData.map((item) => ({
slug: item.slug,
}));
}
export default function AreaOfInjuryDetails({ params }) {
const service = areaOfInjuryData.find((item) => item.slug === params.slug);
if (!service) return notFound();
return (
<Layout
headerStyle={2}
footerStyle={1}
breadcrumbTitle={service.title}
bannerImage={service.bannerImage}
>
<section className="service-details pt_120 pb_120">
<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>Categories</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={service.title} />
</figure>
<div className="icon-box">
<img src={service.icon} alt={`${service.title} Icon`} />
</div>
</div>
<div className="lower-content">
<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={service.title} />
</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>
{/* Subscribe Section */}
<section className="subscribe-section">
<div className="auto-container">
<div className="inner-container">
<div className="row align-items-center">
<div className="col-lg-6 col-md-12 col-sm-12 text-column">
<div className="text-box">
<h2>
<span>Subscribe</span> for the exclusive updates!
</h2>
</div>
</div>
<div className="col-lg-6 col-md-12 col-sm-12 form-column">
<div className="form-inner">
<form method="post" action="contact">
<div className="form-group">
<input
type="email"
name="email"
placeholder="Enter Your Email Address"
required
/>
<button type="submit" className="theme-btn btn-one">
<span>Subscribe Now</span>
</button>
</div>
<div className="form-group">
<div className="check-box">
<input className="check" type="checkbox" id="checkbox1" />
<label htmlFor="checkbox1">
I agree to the <Link href="/">Privacy Policy.</Link>
</label>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
</Layout>
);
}

View File

@ -1,123 +1,132 @@
'use client'
import React from "react";
import { useParams } from "next/navigation";
import Layout from "@/components/layout/Layout";
import Link from "next/link";
import { notFound } from "next/navigation";
import { teamMembers } from "@/utils/constant.utils";
const ProgressBar = ({ label, percent }) => (
<div className="progress-box">
<p>{label}</p>
<div className="bar">
<div className="bar-inner count-bar" style={{ width: `${percent}%` }}></div>
<div className="count-text">{`${percent}%`}</div>
</div>
<div className="progress-box">
<p>{label}</p>
<div className="bar">
<div className="bar-inner count-bar" style={{ width: `${percent}%` }}></div>
<div className="count-text">{`${percent}%`}</div>
</div>
</div>
);
export default function TeamDetails() {
const { slug } = useParams();
const member = teamMembers.find((item) => item.slug === slug);
if (!member) {
return (
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Not Found">
<div className="auto-container">
<h2>Team member not found!</h2>
<Link href="/" className="theme-btn btn-one">Go Back</Link>
</div>
</Layout>
);
}
return (
<>
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Team Details">
<section className="team-details sec-pad-2">
<div className="auto-container">
<div className="team-details-content mb_50">
<div className="row clearfix">
<div className="col-lg-5 col-md-12 col-sm-12 image-column">
<figure className="image-box mr_15">
<img src={member.image} alt={member.name} />
</figure>
</div>
<div className="col-lg-7 col-md-12 col-sm-12 content-column">
<div className="content-box">
<h2>{member.name}</h2>
<span className="designation">{member.designation}</span>
<p>{member.description}</p>
<ul className="info-list mb_30 clearfix">
<li><strong>Experience: </strong>{member.experience}</li>
<li><strong>Email: </strong><Link href={`mailto:${member.email}`}>{member.email}</Link></li>
<li><strong>Phone: </strong><Link href={`tel:${member.phone}`}>{member.phone}</Link></li>
</ul>
<ul className="social-links clearfix">
{member.socials.map((social, idx) => (
<li key={idx}><Link href={social.link}><i className={social.icon}></i></Link></li>
))}
</ul>
</div>
</div>
</div>
</div>
<div className="experience-details mb_50">
<h2>Personal Experience</h2>
<p>{member.about1}</p>
<p>{member.about2}</p>
</div>
{/* Expertise & Skills */}
<div className="two-column">
<div className="row clearfix">
<div className="col-lg-6 col-md-6 col-sm-12 skills-column">
<div className="skills-box">
<div className="text-box mb_30">
<h2>Expertise & Skills</h2>
<p>Professional expertise and top-level skills demonstrated below:</p>
</div>
<div className="progress-inner">
{member.skills.map((skill, index) => (
<ProgressBar key={index} label={skill.label} percent={skill.percent} />
))}
</div>
</div>
</div>
{/* Appointment Form */}
<div className="col-lg-6 col-md-6 col-sm-12 appointment-column">
<div className="appointment-inner">
<h2>Book An Appointment</h2>
<form method="post" action="#" className="default-form">
<div className="row clearfix">
<div className="col-lg-6 col-md-6 col-sm-12 form-group">
<input type="text" name="fname" placeholder="First Name" required />
</div>
<div className="col-lg-6 col-md-6 col-sm-12 form-group">
<input type="text" name="phone" placeholder="Phone Number" required />
</div>
<div className="col-lg-6 col-md-6 col-sm-12 form-group">
<input type="email" name="email" placeholder="Email" required />
</div>
<div className="col-lg-6 col-md-6 col-sm-12 form-group">
<input type="text" name="subject" placeholder="Subject" required />
</div>
<div className="col-lg-12 col-md-12 col-sm-12 form-group">
<textarea name="message" placeholder="Message"></textarea>
</div>
<div className="col-lg-12 col-md-12 col-sm-12 form-group message-btn">
<button type="submit" className="theme-btn btn-one"><span>Send Message</span></button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
</Layout>
</>
);
// ✅ Generate static params for team members
export async function generateStaticParams() {
return teamMembers.map((member) => ({
slug: member.slug,
}));
}
export default function TeamDetails({ params }) {
const member = teamMembers.find((item) => item.slug === params.slug);
if (!member) {
return (
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Not Found">
<div className="auto-container">
<h2>Team member not found!</h2>
<Link href="/" className="theme-btn btn-one">Go Back</Link>
</div>
</Layout>
);
}
return (
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Team Details">
<section className="team-details sec-pad-2">
<div className="auto-container">
<div className="team-details-content mb_50">
<div className="row clearfix">
<div className="col-lg-5 col-md-12 col-sm-12 image-column">
<figure className="image-box mr_15">
<img src={member.image} alt={member.name} />
</figure>
</div>
<div className="col-lg-7 col-md-12 col-sm-12 content-column">
<div className="content-box">
<h2>{member.name}</h2>
<span className="designation">{member.designation}</span>
<p>{member.description}</p>
<ul className="info-list mb_30 clearfix">
<li><strong>Experience: </strong>{member.experience}</li>
<li><strong>Email: </strong><Link href={`mailto:${member.email}`}>{member.email}</Link></li>
<li><strong>Phone: </strong><Link href={`tel:${member.phone}`}>{member.phone}</Link></li>
</ul>
<ul className="social-links clearfix">
{member.socials.map((social, idx) => (
<li key={idx}>
<Link href={social.link}>
<i className={social.icon}></i>
</Link>
</li>
))}
</ul>
</div>
</div>
</div>
</div>
<div className="experience-details mb_50">
<h2>Personal Experience</h2>
<p>{member.about1}</p>
<p>{member.about2}</p>
</div>
{/* Expertise & Skills */}
<div className="two-column">
<div className="row clearfix">
<div className="col-lg-6 col-md-6 col-sm-12 skills-column">
<div className="skills-box">
<div className="text-box mb_30">
<h2>Expertise & Skills</h2>
<p>Professional expertise and top-level skills demonstrated below:</p>
</div>
<div className="progress-inner">
{member.skills.map((skill, index) => (
<ProgressBar key={index} label={skill.label} percent={skill.percent} />
))}
</div>
</div>
</div>
{/* Appointment Form */}
<div className="col-lg-6 col-md-6 col-sm-12 appointment-column">
<div className="appointment-inner">
<h2>Book An Appointment</h2>
<form method="post" action="#" className="default-form">
<div className="row clearfix">
<div className="col-lg-6 col-md-6 col-sm-12 form-group">
<input type="text" name="fname" placeholder="First Name" required />
</div>
<div className="col-lg-6 col-md-6 col-sm-12 form-group">
<input type="text" name="phone" placeholder="Phone Number" required />
</div>
<div className="col-lg-6 col-md-6 col-sm-12 form-group">
<input type="email" name="email" placeholder="Email" required />
</div>
<div className="col-lg-6 col-md-6 col-sm-12 form-group">
<input type="text" name="subject" placeholder="Subject" required />
</div>
<div className="col-lg-12 col-md-12 col-sm-12 form-group">
<textarea name="message" placeholder="Message"></textarea>
</div>
<div className="col-lg-12 col-md-12 col-sm-12 form-group message-btn">
<button type="submit" className="theme-btn btn-one">
<span>Send Message</span>
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
</Layout>
);
}

View File

@ -1,24 +1,36 @@
'use client';
import Layout from "@/components/layout/Layout";
import Link from "next/link";
import { useParams, notFound } from "next/navigation";
import { notFound } from "next/navigation";
import Rehabilitation from "@/utils/Rehabilitation.utils";
export default function RehabilitationDetailsPage() {
const params = useParams();
// ✅ Generate static paths for export
export async function generateStaticParams() {
return Rehabilitation.map((item) => ({
slug: item.slug,
}));
}
export default function RehabilitationDetailsPage({ params }) {
const service = Rehabilitation.find((item) => item.slug === params.slug);
if (!service) return notFound();
return (
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle={`${service.title}`} bannerImage={service.bannerImage}>
<Layout
headerStyle={2}
footerStyle={1}
breadcrumbTitle={`${service.title}`}
bannerImage={service.bannerImage}
>
<section className="service-details pt_120 pb_120">
<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>Categories</h3></div>
<div className="widget-content">
@ -37,6 +49,7 @@ export default function RehabilitationDetailsPage() {
</div>
</div>
{/* Service Card */}
<div className="service-block-one">
<div className="inner-box">
<div className="image-box">
@ -44,10 +57,7 @@ export default function RehabilitationDetailsPage() {
<img src={service.mainImage} alt={service.title} />
</figure>
<div className="icon-box">
<img
src={service.icon}
alt={`${service.title} Icon`}
/>
<img src={service.icon} alt={`${service.title} Icon`} />
</div>
</div>
<div className="lower-content">
@ -69,7 +79,7 @@ export default function RehabilitationDetailsPage() {
/>
</div>
</div>
</div>
</div>
</section>