diff --git a/components/HotelReservation/SelectRate/RoomSelection/RoomCard/index.tsx b/components/HotelReservation/SelectRate/RoomSelection/RoomCard/index.tsx
index 4404b562c..58533eefe 100644
--- a/components/HotelReservation/SelectRate/RoomSelection/RoomCard/index.tsx
+++ b/components/HotelReservation/SelectRate/RoomSelection/RoomCard/index.tsx
@@ -4,7 +4,13 @@ import { useIntl } from "react-intl"
import { RateDefinition } from "@/server/routers/hotels/output"
import FlexibilityOption from "@/components/HotelReservation/SelectRate/RoomSelection/FlexibilityOption"
-import { ChevronRightSmallIcon } from "@/components/Icons"
+import {
+ ChevronRightSmallIcon,
+ GalleryIcon,
+ ImageIcon,
+} from "@/components/Icons"
+import Image from "@/components/Image"
+import Lightbox from "@/components/Lightbox"
import Button from "@/components/TempDesignSystem/Button"
import Body from "@/components/TempDesignSystem/Text/Body"
import Caption from "@/components/TempDesignSystem/Text/Caption"
@@ -53,17 +59,22 @@ export default function RoomCard({
}
const roomSize = roomCategories.find(
- (category) => category.name === roomConfiguration.roomType
+ (room) => room.name === roomConfiguration.roomType
)?.roomSize
const occupancy = roomCategories.find(
- (category) => category.name === roomConfiguration.roomType
+ (room) => room.name === roomConfiguration.roomType
)?.occupancy.total
const roomDescription = roomCategories.find(
(room) => room.name === roomConfiguration.roomType
)?.descriptions.short
+ const images = roomCategories.find(
+ (room) => room.name === roomConfiguration.roomType
+ )?.images
+ const mainImage = images?.[0]
+
return (
@@ -78,7 +89,10 @@ export default function RoomCard({
)}
- {roomSize?.min}-{roomSize?.max} m²
+ {roomSize?.min === roomSize?.max
+ ? roomSize?.min
+ : `${roomSize?.min}-${roomSize?.max}`}
+ m²
)
}
diff --git a/components/HotelReservation/SelectRate/RoomSelection/RoomCard/roomCard.module.css b/components/HotelReservation/SelectRate/RoomSelection/RoomCard/roomCard.module.css
index 0e794cf94..25add23b5 100644
--- a/components/HotelReservation/SelectRate/RoomSelection/RoomCard/roomCard.module.css
+++ b/components/HotelReservation/SelectRate/RoomSelection/RoomCard/roomCard.module.css
@@ -44,6 +44,7 @@
display: flex;
flex-direction: column;
gap: var(--Spacing-x1);
+ margin-bottom: var(--Spacing-x2);
}
.name {
@@ -57,6 +58,12 @@
border-radius: var(--Corner-radius-Medium) var(--Corner-radius-Medium) 0 0;
}
+.flexibilityOptions {
+ display: flex;
+ flex-direction: column;
+ gap: var(--Spacing-x2);
+}
+
.roomsLeft {
position: absolute;
top: 12px;
@@ -65,3 +72,22 @@
padding: var(--Spacing-x-half) var(--Spacing-x1);
border-radius: var(--Corner-radius-Small);
}
+
+.imageContainer {
+ min-height: 185px;
+ position: relative;
+}
+
+.galleryIcon {
+ position: absolute;
+ bottom: 16px;
+ right: 16px;
+ height: 24px;
+ background-color: rgba(64, 57, 55, 0.9);
+ padding: 0 var(--Spacing-x-half);
+ border-radius: var(--Corner-radius-Small);
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ gap: var(--Spacing-x-quarter);
+}
diff --git a/components/HotelReservation/SelectRate/RoomSelection/index.tsx b/components/HotelReservation/SelectRate/RoomSelection/index.tsx
index 402ab81b9..1f5ad91d3 100644
--- a/components/HotelReservation/SelectRate/RoomSelection/index.tsx
+++ b/components/HotelReservation/SelectRate/RoomSelection/index.tsx
@@ -1,8 +1,5 @@
"use client"
import { useRouter, useSearchParams } from "next/navigation"
-import { useIntl } from "react-intl"
-
-import Button from "@/components/TempDesignSystem/Button"
import RoomCard from "./RoomCard"
@@ -16,7 +13,6 @@ export default function RoomSelection({
}: RoomSelectionProps) {
const router = useRouter()
const searchParams = useSearchParams()
- const intl = useIntl()
function handleSubmit(e: React.FormEvent
) {
e.preventDefault()
@@ -44,12 +40,12 @@ export default function RoomSelection({
))}
-
+ {/*
This is summary
-
+
*/}
)
diff --git a/components/Icons/Gallery.tsx b/components/Icons/Gallery.tsx
new file mode 100644
index 000000000..5bf1bc8b6
--- /dev/null
+++ b/components/Icons/Gallery.tsx
@@ -0,0 +1,36 @@
+import { iconVariants } from "./variants"
+
+import type { IconProps } from "@/types/components/icon"
+
+export default function GalleryIcon({ className, color, ...props }: IconProps) {
+ const classNames = iconVariants({ className, color })
+ return (
+
+ )
+}
diff --git a/components/Icons/get-icon-by-icon-name.ts b/components/Icons/get-icon-by-icon-name.ts
index 9bfc4d9c7..f1664dd8a 100644
--- a/components/Icons/get-icon-by-icon-name.ts
+++ b/components/Icons/get-icon-by-icon-name.ts
@@ -32,6 +32,7 @@ import {
EyeHideIcon,
EyeShowIcon,
FitnessIcon,
+ GalleryIcon,
GiftIcon,
GlobeIcon,
HouseIcon,
@@ -124,6 +125,8 @@ export function getIconByIconName(icon?: IconName): FC | null {
return FacebookIcon
case IconName.Fitness:
return FitnessIcon
+ case IconName.Gallery:
+ return GalleryIcon
case IconName.Gift:
return GiftIcon
case IconName.Globe:
diff --git a/components/Icons/index.tsx b/components/Icons/index.tsx
index 31b77b1e5..0d1d47cff 100644
--- a/components/Icons/index.tsx
+++ b/components/Icons/index.tsx
@@ -31,6 +31,7 @@ export { default as ErrorCircleIcon } from "./ErrorCircle"
export { default as EyeHideIcon } from "./EyeHide"
export { default as EyeShowIcon } from "./EyeShow"
export { default as FitnessIcon } from "./Fitness"
+export { default as GalleryIcon } from "./Gallery"
export { default as GiftIcon } from "./Gift"
export { default as GlobeIcon } from "./Globe"
export { default as HeartIcon } from "./Heart"
diff --git a/components/TempDesignSystem/Text/Footnote/footnote.module.css b/components/TempDesignSystem/Text/Footnote/footnote.module.css
index b3ae66d80..4c2e36b7f 100644
--- a/components/TempDesignSystem/Text/Footnote/footnote.module.css
+++ b/components/TempDesignSystem/Text/Footnote/footnote.module.css
@@ -66,3 +66,7 @@
.uiTextPlaceholder {
color: var(--UI-Text-Placeholder);
}
+
+.white {
+ color: var(--Main-Grey-White);
+}
diff --git a/components/TempDesignSystem/Text/Footnote/variants.ts b/components/TempDesignSystem/Text/Footnote/variants.ts
index 16f5b3185..1d4ad921e 100644
--- a/components/TempDesignSystem/Text/Footnote/variants.ts
+++ b/components/TempDesignSystem/Text/Footnote/variants.ts
@@ -11,6 +11,7 @@ const config = {
peach50: styles.peach50,
uiTextMediumContrast: styles.uiTextMediumContrast,
uiTextPlaceholder: styles.uiTextPlaceholder,
+ white: styles.white,
},
textAlign: {
center: styles.center,
diff --git a/types/components/icon.ts b/types/components/icon.ts
index 174d95cf6..f50a79259 100644
--- a/types/components/icon.ts
+++ b/types/components/icon.ts
@@ -36,6 +36,7 @@ export enum IconName {
EyeShow = "EyeShow",
Facebook = "Facebook",
Fitness = "Fitness",
+ Gallery = "Gallery",
Gift = "Gift",
Globe = "Globe",
House = "House",