feat(specialties): enhance specialties components to include city and state names in metadata and links

This commit is contained in:
hamed
2026-06-21 13:03:50 +03:30
parent cb9d9beaab
commit 8e7d10c859
4 changed files with 19 additions and 8 deletions
+6 -2
View File
@@ -20,10 +20,14 @@ export async function generateMetadata() {
}
async function Specialties() {
const { matchedCity } = await getStateInfo();
const { matchedCity, matchedState } = await getStateInfo();
return (
<Layout name="/specialties">
<SpecialtiesPage cityId={matchedCity?.id ?? null} />
<SpecialtiesPage
cityId={matchedCity?.id ?? null}
cityName={matchedCity?.name ?? null}
stateName={matchedState?.name ?? null}
/>
</Layout>
);
}
+2 -2
View File
@@ -8,7 +8,7 @@ import specialtiesData from "@/data/specialties.json";
import { searchOnList } from "@/helper";
import { request } from "@/services/response";
function SpecialtiesPage({ cityId }) {
function SpecialtiesPage({ cityId, cityName, stateName }) {
const [all, setAll] = useState(specialtiesData);
const [filtered, setFiltered] = useState(specialtiesData);
@@ -38,7 +38,7 @@ function SpecialtiesPage({ cityId }) {
handleSearch={handleSearch}
/>
</HeadPageList>
<List specialties={filtered} />
<List specialties={filtered} cityName={cityName} stateName={stateName} />
</>
);
}
@@ -1,13 +1,15 @@
import Link from "next/link";
function ItemSpecialties({ data }) {
function ItemSpecialties({ data, cityName, stateName }) {
return (
<li>
<Link
href={{
pathname: "/doctors",
query: {
specialties: data.id,
specialty: data.name,
...(cityName && { city: cityName }),
...(stateName && { state: stateName }),
},
}}
className="py-[17.5px] px-[12px] flex flex-col justify-center items-center gap-[16px]
+7 -2
View File
@@ -1,7 +1,7 @@
import MenuS from "@/components/icons/MenuS";
import ItemSpecialties from "./ItemSpecialties";
function List({ specialties = [] }) {
function List({ specialties = [], cityName, stateName }) {
return (
<div className="bg-[#FAFAFA]">
<div className="flex items-center justify-center gap-[12px] pt-[24px] mb-[40px]">
@@ -21,7 +21,12 @@ function List({ specialties = [] }) {
gap-y-[16px] sm:gap-y-[24px] md:gap-y-[32px] lg:gap-y-[40px]"
>
{specialties.map((speciality) => (
<ItemSpecialties data={speciality} key={speciality.id} />
<ItemSpecialties
data={speciality}
key={speciality.id}
cityName={cityName}
stateName={stateName}
/>
))}
</ul>
)}