feat(clinic): improve image handling and map integration in clinic components

This commit is contained in:
hamed
2026-06-18 15:21:19 +03:30
parent ecb77fcfa8
commit fdb5866562
4 changed files with 25 additions and 14 deletions
+13 -8
View File
@@ -2,6 +2,7 @@ import ClinicPage from "@/components/clinic";
import Layout from "@/components/layout/StLayout";
import { fetchReq } from "@/lib/req";
import { getStateInfo } from "@/lib/getStateInfo";
import { imageUrl } from "@/helper";
export async function generateMetadata({ params }) {
const { slug } = await params;
@@ -10,7 +11,8 @@ export async function generateMetadata({ params }) {
const siteName = matchedCity?.site_name || "نوبت 724";
try {
const clinic = await fetchReq(`${API_URL}/api/v1/clinic/${slug}`);
const res = await fetchReq(`${API_URL}/api/v1/clinic/${slug}`);
const clinic = res?.data?.data;
if (!clinic) return {};
const title = `${clinic.title} | ${siteName}`;
@@ -22,8 +24,8 @@ export async function generateMetadata({ params }) {
openGraph: {
title,
description,
images: clinic.images_clinic?.[0]
? [clinic.images_clinic[0]]
images: clinic.images_clinic?.[0]?.url
? [imageUrl(clinic.images_clinic[0].url)]
: ["https://www.nobat724.com/assets/images/logo.png"],
},
};
@@ -34,8 +36,9 @@ export async function generateMetadata({ params }) {
async function Clinic({ params, searchParams }) {
const { slug } = await params;
const sp = await searchParams;
const API_URL = process.env.NEXT_PUBLIC_API_URL;
const page = Number(searchParams?.page) || 1;
const page = Number(sp?.page) || 1;
const limit = 50;
const reqClinics = await fetchReq(`${API_URL}/api/v1/clinic/${slug}`);
@@ -43,16 +46,18 @@ async function Clinic({ params, searchParams }) {
`${API_URL}/api/v1/clinic/doctor-list/${slug}?page=${page}&limit=${limit}`
);
const clinic = reqClinics;
const doctors = reqDoctors?.data || [];
const pagedoctors = reqDoctors?.page;
const clinic = reqClinics?.data?.data || null;
const doctors = reqDoctors?.data?.data || [];
const pagedoctors = reqDoctors?.data?.meta;
const jsonLd = clinic
? {
"@context": "https://schema.org",
"@type": "MedicalClinic",
name: clinic.title,
...(clinic.images_clinic?.[0] && { image: clinic.images_clinic[0] }),
...(clinic.images_clinic?.[0]?.url && {
image: imageUrl(clinic.images_clinic[0].url),
}),
}
: null;