77 getMapFeatureStore ,
88 getMapOptionsStore ,
99 getPathDetailsStore ,
10+ getPOIsStore ,
1011 getQueryStore ,
1112 getRouteStore ,
1213 getSettingsStore ,
@@ -42,7 +43,8 @@ import PlainButton from '@/PlainButton'
4243import useAreasLayer from '@/layers/UseAreasLayer'
4344import useExternalMVTLayer from '@/layers/UseExternalMVTLayer'
4445import LocationButton from '@/map/LocationButton'
45- import { SettingsContext } from './contexts/SettingsContext'
46+ import { SettingsContext } from '@/contexts/SettingsContext'
47+ import usePOIsLayer from '@/layers/UsePOIsLayer'
4648
4749export const POPUP_CONTAINER_ID = 'popup-container'
4850export const SIDEBAR_CONTENT_ID = 'sidebar-content'
@@ -56,6 +58,7 @@ export default function App() {
5658 const [ mapOptions , setMapOptions ] = useState ( getMapOptionsStore ( ) . state )
5759 const [ pathDetails , setPathDetails ] = useState ( getPathDetailsStore ( ) . state )
5860 const [ mapFeatures , setMapFeatures ] = useState ( getMapFeatureStore ( ) . state )
61+ const [ pois , setPOIs ] = useState ( getPOIsStore ( ) . state )
5962
6063 const map = getMap ( )
6164
@@ -68,6 +71,7 @@ export default function App() {
6871 const onMapOptionsChanged = ( ) => setMapOptions ( getMapOptionsStore ( ) . state )
6972 const onPathDetailsChanged = ( ) => setPathDetails ( getPathDetailsStore ( ) . state )
7073 const onMapFeaturesChanged = ( ) => setMapFeatures ( getMapFeatureStore ( ) . state )
74+ const onPOIsChanged = ( ) => setPOIs ( getPOIsStore ( ) . state )
7175
7276 getSettingsStore ( ) . register ( onSettingsChanged )
7377 getQueryStore ( ) . register ( onQueryChanged )
@@ -77,6 +81,7 @@ export default function App() {
7781 getMapOptionsStore ( ) . register ( onMapOptionsChanged )
7882 getPathDetailsStore ( ) . register ( onPathDetailsChanged )
7983 getMapFeatureStore ( ) . register ( onMapFeaturesChanged )
84+ getPOIsStore ( ) . register ( onPOIsChanged )
8085
8186 onQueryChanged ( )
8287 onInfoChanged ( )
@@ -85,6 +90,7 @@ export default function App() {
8590 onMapOptionsChanged ( )
8691 onPathDetailsChanged ( )
8792 onMapFeaturesChanged ( )
93+ onPOIsChanged ( )
8894
8995 return ( ) => {
9096 getSettingsStore ( ) . register ( onSettingsChanged )
@@ -95,6 +101,7 @@ export default function App() {
95101 getMapOptionsStore ( ) . deregister ( onMapOptionsChanged )
96102 getPathDetailsStore ( ) . deregister ( onPathDetailsChanged )
97103 getMapFeatureStore ( ) . deregister ( onMapFeaturesChanged )
104+ getPOIsStore ( ) . deregister ( onPOIsChanged )
98105 }
99106 } , [ ] )
100107
@@ -108,11 +115,19 @@ export default function App() {
108115 usePathsLayer ( map , route . routingResult . paths , route . selectedPath , query . queryPoints )
109116 useQueryPointsLayer ( map , query . queryPoints )
110117 usePathDetailsLayer ( map , pathDetails )
118+ usePOIsLayer ( map , pois )
119+
111120 const isSmallScreen = useMediaQuery ( { query : '(max-width: 44rem)' } )
112121 return (
113122 < SettingsContext . Provider value = { settings } >
114123 < div className = { styles . appWrapper } >
115- < MapPopups map = { map } pathDetails = { pathDetails } mapFeatures = { mapFeatures } />
124+ < MapPopups
125+ map = { map }
126+ pathDetails = { pathDetails }
127+ mapFeatures = { mapFeatures }
128+ poiState = { pois }
129+ query = { query }
130+ />
116131 < ContextMenu map = { map } route = { route } queryPoints = { query . queryPoints } />
117132 { isSmallScreen ? (
118133 < SmallScreenLayout
@@ -178,7 +193,7 @@ function LargeScreenLayout({ query, route, map, error, mapOptions, encodedValues
178193 drawAreas = { drawAreas }
179194 />
180195 ) }
181- < Search points = { query . queryPoints } profile = { query . routingProfile } />
196+ < Search points = { query . queryPoints } profile = { query . routingProfile } map = { map } />
182197 < div > { ! error . isDismissed && < ErrorMessage error = { error } /> } </ div >
183198 < RoutingResults
184199 info = { route . routingResult . info }
@@ -225,6 +240,7 @@ function SmallScreenLayout({ query, route, map, error, mapOptions, encodedValues
225240 error = { error }
226241 encodedValues = { encodedValues }
227242 drawAreas = { drawAreas }
243+ map = { map }
228244 />
229245 </ div >
230246 < div className = { styles . smallScreenMap } >
0 commit comments