feat(sw-343): fixed map page (without modal)

This commit is contained in:
Pontus Dreij
2024-11-01 10:11:27 +01:00
parent 3a5ec28dc1
commit 1b008422d3
6 changed files with 61 additions and 37 deletions

View File

@@ -11,6 +11,7 @@ import { setLang } from "@/i18n/serverContext"
import {
fetchAvailableHotels,
generateChildrenString,
getCentralCoordinates,
getPointOfInterests,
} from "../../utils"
@@ -54,17 +55,7 @@ export default async function SelectHotelMapPage({
const pointOfInterests = getPointOfInterests(hotels)
const centralCoordinates = pointOfInterests.reduce(
(acc, poi) => {
acc.lat += poi.coordinates.lat
acc.lng += poi.coordinates.lng
return acc
},
{ lat: 0, lng: 0 }
)
centralCoordinates.lat /= pointOfInterests.length
centralCoordinates.lng /= pointOfInterests.length
const centralCoordinates = getCentralCoordinates(pointOfInterests)
return (
<MapModal>
@@ -73,6 +64,7 @@ export default async function SelectHotelMapPage({
coordinates={centralCoordinates}
pointsOfInterest={pointOfInterests}
mapId={googleMapId}
isModal={true}
/>
</MapModal>
)

View File

@@ -6,6 +6,7 @@ import { getLocations } from "@/lib/trpc/memoizedRequests"
import {
fetchAvailableHotels,
generateChildrenString,
getCentralCoordinates,
getFiltersFromHotels,
getPointOfInterests,
} from "@/app/[lang]/(live)/(public)/hotelreservation/(standard)/select-hotel/utils"
@@ -55,15 +56,16 @@ export default async function SelectHotelMapPage({
const filters = getFiltersFromHotels(hotels)
const pointOfInterests = getPointOfInterests(hotels)
const centralCoordinates = getCentralCoordinates(pointOfInterests)
return (
<main className={styles.main}>
<SelectHotelMap
apiKey={googleMapsApiKey}
// TODO: use correct coordinates. The city center?
coordinates={{ lat: 59.32, lng: 18.01 }}
coordinates={centralCoordinates}
pointsOfInterest={pointOfInterests}
mapId={googleMapId}
isModal={false}
/>
</main>
)

View File

@@ -78,3 +78,19 @@ export function getPointOfInterests(hotels: HotelData[]): PointOfInterest[] {
group: PointOfInterestGroupEnum.LOCATION,
}))
}
export function getCentralCoordinates(pointOfInterests: PointOfInterest[]) {
const centralCoordinates = pointOfInterests.reduce(
(acc, poi) => {
acc.lat += poi.coordinates.lat
acc.lng += poi.coordinates.lng
return acc
},
{ lat: 0, lng: 0 }
)
centralCoordinates.lat /= pointOfInterests.length
centralCoordinates.lng /= pointOfInterests.length
return centralCoordinates
}