Merge remote-tracking branch 'origin' into feature/tracking
This commit is contained in:
@@ -36,7 +36,7 @@ export default async function AmenitiesList({
|
||||
height={20}
|
||||
/>
|
||||
)}
|
||||
<Body color="textMediumContrast">{facility.name}</Body>
|
||||
<Body color="uiTextMediumContrast">{facility.name}</Body>
|
||||
</div>
|
||||
)
|
||||
})}
|
||||
|
||||
@@ -23,6 +23,7 @@ export default function ActivitiesCardGrid(activitiesCard: ActivityCard) {
|
||||
href: `?s=${activities[lang]}`,
|
||||
title: activitiesCard.ctaText,
|
||||
isExternal: false,
|
||||
scrollOnClick: false,
|
||||
}
|
||||
: undefined,
|
||||
secondaryButton: hasImage
|
||||
@@ -31,6 +32,7 @@ export default function ActivitiesCardGrid(activitiesCard: ActivityCard) {
|
||||
href: `?s=${activities[lang]}`,
|
||||
title: activitiesCard.ctaText,
|
||||
isExternal: false,
|
||||
scrollOnClick: false,
|
||||
},
|
||||
}
|
||||
return (
|
||||
|
||||
@@ -51,7 +51,7 @@ export default async function IntroSection({
|
||||
</BiroScript>
|
||||
<Title level="h2">{hotelName}</Title>
|
||||
</div>
|
||||
<Body color="textMediumContrast">{formattedLocationText}</Body>
|
||||
<Body color="uiTextMediumContrast">{formattedLocationText}</Body>
|
||||
{hasTripAdvisorData && (
|
||||
<Link
|
||||
className={styles.introLink}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {
|
||||
import type {
|
||||
HotelAddress,
|
||||
HotelData,
|
||||
HotelLocation,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"use client"
|
||||
|
||||
import { PropsWithChildren, useRef } from "react"
|
||||
import { type PropsWithChildren, useRef } from "react"
|
||||
|
||||
import { StickyElementNameEnum } from "@/stores/sticky-position"
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ export default function PreviewImages({
|
||||
title={image.metaData.title}
|
||||
width={index === 0 ? 752 : 292}
|
||||
height={index === 0 ? 540 : 266}
|
||||
onClick={() => setLightboxIsOpen(true)}
|
||||
className={styles.image}
|
||||
/>
|
||||
))}
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
max-height: 30vh;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.imageWrapper > :nth-child(2),
|
||||
|
||||
@@ -4,9 +4,9 @@ import { useRef, useState } from "react"
|
||||
import { useIntl } from "react-intl"
|
||||
|
||||
import SectionContainer from "@/components/Section/Container"
|
||||
import SectionHeader from "@/components/Section/Header"
|
||||
import Grids from "@/components/TempDesignSystem/Grids"
|
||||
import ShowMoreButton from "@/components/TempDesignSystem/ShowMoreButton"
|
||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
||||
|
||||
import { RoomCard } from "./RoomCard"
|
||||
|
||||
@@ -35,19 +35,19 @@ export function Rooms({ rooms }: RoomsProps) {
|
||||
className={styles.roomsContainer}
|
||||
>
|
||||
<div ref={scrollRef} className={styles.scrollRef}></div>
|
||||
<SectionHeader
|
||||
textTransform="capitalize"
|
||||
title={intl.formatMessage({ id: "Rooms" })}
|
||||
preamble={null}
|
||||
/>
|
||||
<Title as="h3" level="h2">
|
||||
{intl.formatMessage({ id: "Rooms" })}
|
||||
</Title>
|
||||
<Grids.Stackable
|
||||
className={`${styles.grid} ${allRoomsVisible ? styles.allVisible : ""}`}
|
||||
>
|
||||
{rooms.map((room) => (
|
||||
<div key={room.id}>
|
||||
<RoomCard room={room} />
|
||||
</div>
|
||||
))}
|
||||
{rooms
|
||||
.sort((a, b) => a.sortOrder - b.sortOrder)
|
||||
.map((room) => (
|
||||
<div key={room.id}>
|
||||
<RoomCard room={room} />
|
||||
</div>
|
||||
))}
|
||||
</Grids.Stackable>
|
||||
|
||||
{showToggleButton ? (
|
||||
|
||||
@@ -40,6 +40,7 @@ export default async function AboutTheHotelSidePeek({
|
||||
<Divider color="baseSurfaceSubtleHover" />
|
||||
<Preamble>{descriptions.descriptions.medium}</Preamble>
|
||||
<Body>{descriptions.facilityInformation}</Body>
|
||||
<Body>{descriptions.surroundingInformation}</Body>
|
||||
</section>
|
||||
</SidePeek>
|
||||
)
|
||||
|
||||
@@ -17,6 +17,7 @@ export default async function AccessibilityAmenity({
|
||||
<AccordionItem
|
||||
title={intl.formatMessage({ id: "Accessibility" })}
|
||||
icon={IconName.Accessibility}
|
||||
variant="sidepeek"
|
||||
>
|
||||
<div className={styles.wrapper}>
|
||||
{accessibility?.description && (
|
||||
|
||||
@@ -9,6 +9,7 @@ export default async function BreakfastAmenity() {
|
||||
<AccordionItem
|
||||
title={intl.formatMessage({ id: "Breakfast" })}
|
||||
icon={IconName.CoffeeAlt}
|
||||
variant="sidepeek"
|
||||
>
|
||||
{/* TODO: breakfast to be implemented */}
|
||||
</AccordionItem>
|
||||
|
||||
@@ -14,6 +14,7 @@ export default async function CheckInAmenity({
|
||||
<AccordionItem
|
||||
title={`${intl.formatMessage({ id: "Check-in" })}/${intl.formatMessage({ id: "Check-out" })}`}
|
||||
icon={IconName.Business}
|
||||
variant="sidepeek"
|
||||
>
|
||||
<Body textTransform="bold">{intl.formatMessage({ id: "Times" })}</Body>
|
||||
<Body color="uiTextHighContrast">{`${intl.formatMessage({ id: "Check in from" })}: ${checkInTime}`}</Body>
|
||||
|
||||
@@ -25,6 +25,7 @@ export default async function ParkingAmenity({
|
||||
<AccordionItem
|
||||
title={intl.formatMessage({ id: "Parking" })}
|
||||
icon={IconName.Parking}
|
||||
variant="sidepeek"
|
||||
>
|
||||
<div className={styles.wrapper}>
|
||||
{parking.map((data) => (
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
.wrapper {
|
||||
padding: var(--Spacing-x1);
|
||||
padding: var(--Spacing-x1) var(--Spacing-x0);
|
||||
border-bottom: 1px solid var(--Base-Border-Subtle);
|
||||
}
|
||||
|
||||
.amenity {
|
||||
display: flex;
|
||||
gap: var(--Spacing-x1);
|
||||
padding: var(--Spacing-x-one-and-half) var(--Spacing-x2);
|
||||
padding: var(--Spacing-x-one-and-half) var(--Spacing-x1);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { HeartIcon } from "@/components/Icons"
|
||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
||||
import Subtitle from "@/components/TempDesignSystem/Text/Subtitle"
|
||||
|
||||
import { mapFacilityToIcon } from "../../../data"
|
||||
|
||||
@@ -15,16 +15,18 @@ export default function FilteredAmenities({
|
||||
{filteredAmenities?.map((amenity) => {
|
||||
const Icon = mapFacilityToIcon(amenity.id)
|
||||
return (
|
||||
<div key={amenity.name} className={styles.wrapper}>
|
||||
<li key={amenity.name} className={styles.wrapper}>
|
||||
<div className={styles.amenity}>
|
||||
{Icon ? (
|
||||
<Icon color="burgundy" width={24} height={24} />
|
||||
) : (
|
||||
<HeartIcon color="burgundy" width={24} height={24} />
|
||||
)}
|
||||
<Body color="burgundy">{amenity.name}</Body>
|
||||
<Subtitle color="burgundy" type="two">
|
||||
{amenity.name}
|
||||
</Subtitle>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
)
|
||||
})}
|
||||
</>
|
||||
|
||||
@@ -6,7 +6,7 @@ import { getIntl } from "@/i18n"
|
||||
|
||||
import styles from "./facility.module.css"
|
||||
|
||||
import { FacilityProps } from "@/types/components/hotelPage/sidepeek/facility"
|
||||
import type { FacilityProps } from "@/types/components/hotelPage/sidepeek/facility"
|
||||
|
||||
export default async function Facility({ data }: FacilityProps) {
|
||||
const intl = await getIntl()
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
justify-content: flex-start;
|
||||
padding: 0 var(--Spacing-x2);
|
||||
width: 100%;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
@@ -26,5 +27,6 @@
|
||||
.tabsContainer {
|
||||
padding: 0 var(--Spacing-x5);
|
||||
max-width: calc(100% - var(--hotel-page-map-desktop-width));
|
||||
overflow-x: visible;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { FC } from "react"
|
||||
|
||||
import { getIconByIconName } from "@/components/Icons/get-icon-by-icon-name"
|
||||
|
||||
import { IconName, IconProps } from "@/types/components/icon"
|
||||
import type { FC } from "react"
|
||||
|
||||
import { IconName, type IconProps } from "@/types/components/icon"
|
||||
import { FacilityEnum } from "@/types/enums/facilities"
|
||||
|
||||
const facilityToIconMap: Record<FacilityEnum, IconName> = {
|
||||
|
||||
@@ -78,7 +78,7 @@ export default async function HotelPage({ hotelId }: HotelPageProps) {
|
||||
const roomCategories =
|
||||
hotelData.included?.filter((item) => item.type === "roomcategories") || []
|
||||
const images = gallery?.smallerImages
|
||||
const description = hotelContent.texts.descriptions.short
|
||||
const description = hotelContent.texts.descriptions.medium
|
||||
const activitiesCard = content?.[0]?.upcoming_activities_card || null
|
||||
|
||||
const facilities: Facility[] = [
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import { staticPageVariants } from "./variants"
|
||||
|
||||
import type { VariantProps } from "class-variance-authority"
|
||||
|
||||
import type { TrackingSDKPageData } from "@/types/components/tracking"
|
||||
import type { CollectionPage } from "@/types/trpc/routers/contentstack/collectionPage"
|
||||
import type { ContentPage } from "@/types/trpc/routers/contentstack/contentPage"
|
||||
import type { staticPageVariants } from "./variants"
|
||||
|
||||
export interface StaticPageProps
|
||||
extends Omit<React.HTMLAttributes<HTMLDivElement>, "content">,
|
||||
|
||||
Reference in New Issue
Block a user