diff --git a/app/[lang]/(live)/(public)/hotelreservation/(standard)/select-hotel/@modal/(.)map/page.tsx b/app/[lang]/(live)/(public)/hotelreservation/(standard)/select-hotel/@modal/(.)map/page.tsx
index fd9cc33c5..7c5573536 100644
--- a/app/[lang]/(live)/(public)/hotelreservation/(standard)/select-hotel/@modal/(.)map/page.tsx
+++ b/app/[lang]/(live)/(public)/hotelreservation/(standard)/select-hotel/@modal/(.)map/page.tsx
@@ -12,7 +12,7 @@ import {
import { MapModal } from "@/components/MapModal"
import { setLang } from "@/i18n/serverContext"
-import { fetchAvailableHotels } from "../../utils"
+import { fetchAvailableHotels, getFiltersFromHotels } from "../../utils"
import type { SelectHotelSearchParams } from "@/types/components/hotelReservation/selectHotel/selectHotelSearchParams"
import type { LangParams, PageArgs } from "@/types/params"
@@ -57,6 +57,7 @@ export default async function SelectHotelMapPage({
})
const hotelPins = getHotelPins(hotels)
+ const filterList = getFiltersFromHotels(hotels)
return (
@@ -65,6 +66,7 @@ export default async function SelectHotelMapPage({
hotelPins={hotelPins}
mapId={googleMapId}
hotels={hotels}
+ filterList={filterList}
/>
)
diff --git a/components/HotelReservation/SelectHotel/FilterAndSortModal/filterAndSortModal.module.css b/components/HotelReservation/SelectHotel/FilterAndSortModal/filterAndSortModal.module.css
index 6768d2c56..299527ad0 100644
--- a/components/HotelReservation/SelectHotel/FilterAndSortModal/filterAndSortModal.module.css
+++ b/components/HotelReservation/SelectHotel/FilterAndSortModal/filterAndSortModal.module.css
@@ -81,6 +81,10 @@
flex: 0 0 auto;
}
+.title {
+ display: none;
+}
+
.close {
background: none;
border: none;
@@ -97,3 +101,69 @@
flex: 0 0 auto;
border-top: 1px solid var(--Base-Border-Subtle);
}
+
+@media screen and (min-width: 768px) {
+ .modal {
+ left: 50%;
+ bottom: 50%;
+ height: min(80dvh, 680px);
+ width: min(80dvw, 960px);
+ translate: -50% 50%;
+ overflow-y: auto;
+ }
+
+ .header {
+ display: grid;
+ grid-template-columns: auto 1fr;
+ padding: var(--Spacing-x2) var(--Spacing-x3);
+ align-items: center;
+ border-bottom: 1px solid var(--Base-Border-Subtle);
+ position: sticky;
+ top: 0;
+ background: var(--Base-Surface-Primary-light-Normal);
+ z-index: 1;
+ border-top-left-radius: var(--Corner-radius-large);
+ border-top-right-radius: var(--Corner-radius-large);
+ }
+
+ .title {
+ display: block;
+ }
+
+ .content {
+ gap: var(--Spacing-x4);
+ height: auto;
+ }
+
+ .filters {
+ overflow-y: unset;
+ }
+
+ .sorter,
+ .filters,
+ .footer,
+ .divider {
+ padding: 0 var(--Spacing-x3);
+ }
+
+ .footer {
+ flex-direction: row-reverse;
+ justify-content: space-between;
+ position: sticky;
+ bottom: 0;
+ background: var(--Base-Surface-Primary-light-Normal);
+ z-index: 1;
+ border-bottom-left-radius: var(--Corner-radius-large);
+ border-bottom-right-radius: var(--Corner-radius-large);
+ padding: var(--Spacing-x2) var(--Spacing-x3);
+ }
+
+ .filters aside h1 {
+ margin-bottom: var(--Spacing-x2);
+ }
+
+ .filters aside > div:last-child {
+ margin-top: var(--Spacing-x4);
+ padding-bottom: 0;
+ }
+}
diff --git a/components/HotelReservation/SelectHotel/FilterAndSortModal/index.tsx b/components/HotelReservation/SelectHotel/FilterAndSortModal/index.tsx
index be1a1bc9c..40dd606fb 100644
--- a/components/HotelReservation/SelectHotel/FilterAndSortModal/index.tsx
+++ b/components/HotelReservation/SelectHotel/FilterAndSortModal/index.tsx
@@ -12,6 +12,8 @@ import { useHotelFilterStore } from "@/stores/hotel-filters"
import { CloseLargeIcon, FilterIcon } from "@/components/Icons"
import Button from "@/components/TempDesignSystem/Button"
+import Divider from "@/components/TempDesignSystem/Divider"
+import Subtitle from "@/components/TempDesignSystem/Text/Subtitle"
import HotelFilter from "../HotelFilter"
import HotelSorter from "../HotelSorter"
@@ -47,12 +49,20 @@ export default function FilterAndSortModal({
>
+
+ {intl.formatMessage({ id: "Filter and sort" })}
+
+
-
+