feat: implement root domain handling for nobat724.com to prevent city filtering

This commit is contained in:
hamed
2026-07-02 21:53:45 +03:30
parent e6b55c6bad
commit 79f7df2e4d
9 changed files with 196 additions and 24 deletions
+4 -5
View File
@@ -25,7 +25,7 @@ export async function generateMetadata() {
export default async function Clinics({ searchParams }) {
const awaitedSearchParams = await searchParams;
const { matchedCity, matchedState } = await getStateInfo();
const { matchedCity, matchedState, isRoot } = await getStateInfo();
const API_URL = process.env.NEXT_PUBLIC_API_URL;
const stateParams = awaitedSearchParams.state;
const cityParams = awaitedSearchParams.city;
@@ -35,14 +35,13 @@ export default async function Clinics({ searchParams }) {
// Params
let newSearchParams = awaitedSearchParams;
// Conditional State
// Conditional State — روی دامنهٔ ریشه (nobat724) فیلتر اعمال نمی‌شود.
if (stateParams) newSearchParams.state = stateParams;
else if (matchedState) newSearchParams.state = matchedState.name;
else if (matchedState && !isRoot) newSearchParams.state = matchedState.name;
// Conditional City
if (cityParams) newSearchParams.city = cityParams;
else if (matchedCity && matchedCity.id !== "600")
newSearchParams.city = matchedCity.name;
else if (matchedCity && !isRoot) newSearchParams.city = matchedCity.name;
const params = buildClinicParams(newSearchParams);
+4 -5
View File
@@ -25,7 +25,7 @@ export async function generateMetadata() {
async function Doctors({ searchParams }) {
const awaitedSearchParams = await searchParams;
const { matchedCity, matchedState } = await getStateInfo();
const { matchedCity, matchedState, isRoot } = await getStateInfo();
const API_URL = process.env.NEXT_PUBLIC_API_URL;
let doctors = null;
@@ -35,14 +35,13 @@ async function Doctors({ searchParams }) {
try {
let newSearchParams = awaitedSearchParams;
// Conditional State
// Conditional State — روی دامنهٔ ریشه (nobat724) فیلتر اعمال نمی‌شود.
if (stateParams) newSearchParams.state = stateParams;
else if (matchedState) newSearchParams.state = matchedState.name;
else if (matchedState && !isRoot) newSearchParams.state = matchedState.name;
// Conditional City
if (cityParams) newSearchParams.city = cityParams;
else if (matchedCity && matchedCity.id !== "600")
newSearchParams.city = matchedCity.name;
else if (matchedCity && !isRoot) newSearchParams.city = matchedCity.name;
const params = buildDoctorParams(newSearchParams);
+4 -4
View File
@@ -20,13 +20,13 @@ export async function generateMetadata() {
}
async function Specialties() {
const { matchedCity, matchedState } = await getStateInfo();
const { matchedCity, matchedState, isRoot } = await getStateInfo();
return (
<Layout name="/specialties">
<SpecialtiesPage
cityId={matchedCity?.id ?? null}
cityName={matchedCity?.name ?? null}
stateName={matchedState?.name ?? null}
cityId={isRoot ? null : (matchedCity?.id ?? null)}
cityName={isRoot ? null : (matchedCity?.name ?? null)}
stateName={isRoot ? null : (matchedState?.name ?? null)}
/>
</Layout>
);