Merged in feat/SW-1573-subpage-url (pull request #1297)

Feat(SW-1573): Use pageInUrl for hotel subpages

* feat(SW-1573): use pageInUrl for hotel subpages


Approved-by: Erik Tiekstra
Approved-by: Fredrik Thorsson
This commit is contained in:
Matilda Landström
2025-02-11 08:27:09 +00:00
parent f021c60c2a
commit ad7402f2e2
14 changed files with 45 additions and 92 deletions

View File

@@ -1,9 +1,3 @@
import {
accessibilitySubPage,
parkingSubPage,
wellnessSubPage,
} from "@/constants/routes/hotelSubpages"
import { getLang } from "@/i18n/serverContext"
import AccessibilityAdditionalContent from "./Accessibility"
@@ -22,14 +16,12 @@ export default function HotelSubpageAdditionalContent({
hotel,
additionalData,
}: HotelSubpageAdditionalContentProps) {
const lang = getLang()
switch (subpage) {
case parkingSubPage[lang]:
case additionalData.hotelParking.nameInUrl:
return <ParkingAdditionalContent hotel={hotel} />
case wellnessSubPage[lang]:
case additionalData.healthAndFitness.nameInUrl:
return null
case accessibilitySubPage[lang]:
case additionalData.hotelSpecialNeeds.nameInUrl:
return <AccessibilityAdditionalContent additionalData={additionalData} />
default:
return null

View File

@@ -1,32 +1,25 @@
import {
accessibilitySubPage,
parkingSubPage,
wellnessSubPage,
} from "@/constants/routes/hotelSubpages"
import { getLang } from "@/i18n/serverContext"
import ParkingSidebar from "./ParkingSidebar"
import WellnessSidebar from "./WellnessSidebar"
import type { Hotel } from "@/types/hotel"
import type { AdditionalData, Hotel } from "@/types/hotel"
interface HotelSubpageSidebarProps {
subpage: string
hotel: Hotel
additionalData: AdditionalData
}
export default function HotelSubpageSidebar({
subpage,
hotel,
additionalData,
}: HotelSubpageSidebarProps) {
const lang = getLang()
switch (subpage) {
case parkingSubPage[lang]:
case additionalData.hotelParking.nameInUrl:
return <ParkingSidebar hotel={hotel} />
case wellnessSubPage[lang]:
case additionalData.healthAndFitness.nameInUrl:
return <WellnessSidebar hotel={hotel} />
case accessibilitySubPage[lang]:
case additionalData.hotelSpecialNeeds.nameInUrl:
return null
default:
return null

View File

@@ -78,7 +78,11 @@ export default async function HotelSubpage({
/>
</main>
<HotelSubpageSidebar subpage={subpage} hotel={hotelData.hotel} />
<HotelSubpageSidebar
subpage={subpage}
hotel={hotelData.hotel}
additionalData={hotelData.additionalData}
/>
</div>
</section>
{/* Tracking */}

View File

@@ -1,11 +1,3 @@
import {
accessibilitySubPage,
parkingSubPage,
wellnessSubPage,
} from "@/constants/routes/hotelSubpages"
import { getLang } from "@/i18n/serverContext"
import type { IntlShape } from "react-intl"
import type { HotelData } from "@/types/hotel"
@@ -15,11 +7,11 @@ export function getSubpageData(
subpage: string,
hotelData: HotelData
) {
const lang = getLang()
const additionalData = hotelData.additionalData
const hotel = hotelData.hotel
switch (subpage) {
case parkingSubPage[lang]:
case additionalData.hotelParking.nameInUrl:
const parkingImage = additionalData.parkingImages?.heroImages[0]
return {
...additionalData.hotelParking,
@@ -31,7 +23,7 @@ export function getSubpageData(
}
: null,
}
case wellnessSubPage[lang]:
case additionalData.healthAndFitness.nameInUrl:
const wellnessImage = hotel.healthFacilities.find(
(fac) => fac.content.images.length
)?.content.images[0]
@@ -45,7 +37,7 @@ export function getSubpageData(
}
: null,
}
case accessibilitySubPage[lang]:
case additionalData.hotelSpecialNeeds.nameInUrl:
const accessibilityImage = additionalData.accessibility?.heroImages[0]
return {
...additionalData.hotelSpecialNeeds,