feat: رفع لینک /doctor/undefined و متمایزسازی صفحهٔ اصلی شهرها

- ایجاد پرامپت برای رفع خطای 404 ناشی از لینک `/doctor/undefined` در سایت‌های بهبهان و یاسوج.
- افزودن کامپوننت `CityHighlights` برای نمایش محتوای یکتا و آمار پزشکان و تخصص‌های پرمراجعه در صفحهٔ اصلی هر شهر.
- به‌روزرسانی تست‌های مربوط به کامپوننت‌های `ItemDoctor` و `CityHighlights` برای اطمینان از عدم وجود لینک‌های نامعتبر و نمایش صحیح اطلاعات.
- ایجاد سند جدید برای مستندسازی خطاهای Search Console که باگ نیستند و نیاز به رفع ندارند.
- افزودن تست‌های واحد برای توابع `buildCityIntro` و دیگر توابع مرتبط با تولید متن یکتا برای صفحات لیست.
This commit is contained in:
hamed
2026-08-08 19:14:50 +03:30
parent 79747c443c
commit b494473e40
13 changed files with 1047 additions and 28 deletions
+9
View File
@@ -5,6 +5,8 @@ import { getStateInfo } from "@/lib/getStateInfo";
import { fetchReq } from "@/lib/req";
import { isNextRedirectError } from "@/lib/maintenance";
import { listingRobots } from "@/lib/listingRobots";
import { buildDoctorsIntro } from "@/lib/listingIntro";
import { resolveCityDisplayName } from "@/lib/domainHelpers";
export async function generateMetadata({ searchParams }) {
const awaitedParams = await searchParams;
@@ -75,6 +77,13 @@ async function Doctors({ searchParams }) {
params={searchParams}
matchedCity={matchedCity}
matchedState={matchedState}
// متن مقدمه سمت سرور ساخته می‌شود تا در HTML اولیه باشد و خزنده ببیندش.
// buildDoctorsIntro از قبل نوشته و تست شده بود اما هیچ‌جا رندر نمی‌شد، پس
// این صفحه روی هر ۳۵ دامنه محتوای یکسان داشت.
intro={buildDoctorsIntro(
resolveCityDisplayName(isRoot ? null : matchedCity),
doctors?.meta?.totalRecords
)}
/>
</Layout>
);