-
-
Notifications
You must be signed in to change notification settings - Fork 300
Expand file tree
/
Copy pathbasemapMenu.js
More file actions
36 lines (33 loc) · 1022 Bytes
/
basemapMenu.js
File metadata and controls
36 lines (33 loc) · 1022 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import { useState } from 'react';
import { baseLayers } from '../config';
export const BasemapMenu = ({ map }: Object) => {
const [basemap, setBasemap] = useState('OSM');
const handleClick = (activeLayer) => {
// toggle visibiity as per active base layer
for (const layer of Object.keys(baseLayers)) {
map.setLayoutProperty(
`${layer}-layer`,
'visibility',
`${activeLayer}-layer` === `${layer}-layer` ? 'visible' : 'none',
);
}
setBasemap(activeLayer);
};
return (
<div className="bg-white blue-dark flex mt2 ml2 f7 fr br1 shadow-1">
{Object.keys(baseLayers).map((baseLayer, k) => {
return (
<div
key={k}
onClick={() => handleClick(baseLayer)}
className={`ttc pv2 ph3 pointer link + ${
basemap === baseLayer ? 'bg-grey-light fw6' : ''
}`}
>
{k === 0 ? `Default (${baseLayer})` : baseLayer}
</div>
);
})}
</div>
);
};