Files
web/apps/scandic-web/stores/destination-page-cities-map.ts
Erik Tiekstra 36aa5089ea fix(BOOK-138): Fixed several issues after country map functionality was added
* fix(BOOK-138): Fixed issue when hovering markers and info windows for both city cluster marker as city markers.

Approved-by: Matilda Landström
2025-10-07 11:37:54 +00:00

35 lines
1.1 KiB
TypeScript

import { create } from "zustand"
export type SelectedMarker = {
cityId: string
location: { lat: number; lng: number }
} | null
interface DestinationPageCitiesMapState {
hoveredCityMarker: string | null
hoveredInfoWindow: string | null
activeCityMarker: SelectedMarker
setHoveredInfoWindow: (hovered: string | null) => void
setHoveredCityMarker: (cityId: string | null) => void
setActiveCityMarker: (marker: SelectedMarker) => void
resetActiveAndHoveredState: () => void
}
export const useDestinationPageCitiesMapStore =
create<DestinationPageCitiesMapState>((set) => ({
hoveredCityMarker: null,
hoveredInfoWindow: null,
activeCityMarker: null,
setHoveredInfoWindow: (hovered) =>
set(() => ({ hoveredInfoWindow: hovered })),
setHoveredCityMarker: (cityId) => set({ hoveredCityMarker: cityId }),
setActiveCityMarker: (selectedMarker) =>
set({ activeCityMarker: selectedMarker }),
resetActiveAndHoveredState: () =>
set({
activeCityMarker: null,
hoveredCityMarker: null,
hoveredInfoWindow: null,
}),
}))