Merged in fix/BOOK-438-breadcrumbs-seo-filter (pull request #3103)
feat(BOOK-438): add breadcrumbs on seofilter pages * feat(BOOK-438): add breadcrumbs on seofilter pages * feat(BOOK-438): remove unused function Approved-by: Hrishikesh Vaipurkar
This commit is contained in:
@@ -29,7 +29,7 @@ import DestinationPageSidePeek from "../Sidepeek"
|
||||
import StaticMap from "../StaticMap"
|
||||
import TopImages from "../TopImages"
|
||||
import DestinationTracking from "../Tracking"
|
||||
import { isValidSeoFilter } from "../utils"
|
||||
import { getActiveSeoFilter } from "../utils"
|
||||
import CityMap from "./CityMap"
|
||||
import DestinationCityPageSkeleton from "./DestinationCityPageSkeleton"
|
||||
|
||||
@@ -66,7 +66,9 @@ export default async function DestinationCityPage({
|
||||
seo_filters,
|
||||
} = destinationCityPage
|
||||
|
||||
if (!isValidSeoFilter(seo_filters, filterFromUrl)) {
|
||||
const activeSeoFilter = getActiveSeoFilter(seo_filters, filterFromUrl)
|
||||
|
||||
if (filterFromUrl && !activeSeoFilter) {
|
||||
const updatedPathname = pathname.replace(`/${filterFromUrl}`, "")
|
||||
return redirect(`${updatedPathname}${isMapView ? "?view=map" : ""}`)
|
||||
}
|
||||
@@ -120,7 +122,7 @@ export default async function DestinationCityPage({
|
||||
<div className={styles.pageContainer}>
|
||||
<div className={styles.header}>
|
||||
<Suspense fallback={<BreadcrumbsSkeleton />}>
|
||||
<Breadcrumbs />
|
||||
<Breadcrumbs subpageTitle={activeSeoFilter?.filter.name} />
|
||||
</Suspense>
|
||||
{images?.length ? (
|
||||
<TopImages images={images} destinationName={city.name} />
|
||||
|
||||
@@ -30,7 +30,7 @@ import DestinationPageSidePeek from "../Sidepeek"
|
||||
import StaticMap from "../StaticMap"
|
||||
import TopImages from "../TopImages"
|
||||
import DestinationTracking from "../Tracking"
|
||||
import { isValidSeoFilter } from "../utils"
|
||||
import { getActiveSeoFilter } from "../utils"
|
||||
import CountryMap from "./CountryMap"
|
||||
import DestinationCountryPageSkeleton from "./DestinationCountryPageSkeleton"
|
||||
|
||||
@@ -67,7 +67,9 @@ export default async function DestinationCountryPage({
|
||||
seo_filters,
|
||||
} = destinationCountryPage
|
||||
|
||||
if (!isValidSeoFilter(seo_filters, filterFromUrl)) {
|
||||
const activeSeoFilter = getActiveSeoFilter(seo_filters, filterFromUrl)
|
||||
|
||||
if (filterFromUrl && !activeSeoFilter) {
|
||||
const updatedPathname = pathname.replace(`/${filterFromUrl}`, "")
|
||||
return redirect(`${updatedPathname}${isMapView ? "?view=map" : ""}`)
|
||||
}
|
||||
@@ -132,7 +134,7 @@ export default async function DestinationCountryPage({
|
||||
<div className={styles.pageContainer}>
|
||||
<div className={styles.header}>
|
||||
<Suspense fallback={<BreadcrumbsSkeleton />}>
|
||||
<Breadcrumbs />
|
||||
<Breadcrumbs subpageTitle={activeSeoFilter?.filter.name} />
|
||||
</Suspense>
|
||||
{images?.length ? (
|
||||
<TopImages
|
||||
|
||||
@@ -45,13 +45,15 @@ export function getPreambleText(
|
||||
return defaultPreamble
|
||||
}
|
||||
|
||||
export function isValidSeoFilter(
|
||||
export function getActiveSeoFilter(
|
||||
seoFilters: DestinationFilters,
|
||||
filterFromUrl?: string
|
||||
) {
|
||||
const flattenedSeoFilters = Object.values(seoFilters).flat()
|
||||
if (!filterFromUrl || !flattenedSeoFilters.length) {
|
||||
return true
|
||||
return null
|
||||
}
|
||||
return flattenedSeoFilters.some((f) => f.filter.slug === filterFromUrl)
|
||||
return (
|
||||
flattenedSeoFilters.find((f) => f.filter.slug === filterFromUrl) || null
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user