From 8022ae5e45678d35850c92a2e32de4f5ac4d1866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Famibelle-Pronzola?= Date: Fri, 3 Mar 2023 16:04:47 +0400 Subject: [PATCH] feat: add legend to map --- components/map/index.js | 6 ++- components/map/legend.js | 87 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 components/map/legend.js diff --git a/components/map/index.js b/components/map/index.js index 5a0a949..fc8b115 100644 --- a/components/map/index.js +++ b/components/map/index.js @@ -4,6 +4,7 @@ import maplibregl from 'maplibre-gl' import {sources} from '@/components/map/sources.js' import {layers} from '@/components/map/layers.js' +import Legend from '@/components/map/legend.js' import colors from '@/styles/colors.js' const itineraireLayer = { @@ -278,7 +279,10 @@ const Map = ({selectedAdresse, collegeFeature, collegeItineraire, isMobileDevice }, [map, handleCollegeClick, selectedCollegeFeatureRef]) return ( -
+ <> + +
+ ) } diff --git a/components/map/legend.js b/components/map/legend.js new file mode 100644 index 0000000..8307aab --- /dev/null +++ b/components/map/legend.js @@ -0,0 +1,87 @@ +import {useState} from 'react' +import {uniqueId} from 'lodash-es' + +import colors from '@/styles/colors.js' + +const legend = [ + { + circle: true, + color: colors.green, + libelle: 'Autre collège' + }, + { + circle: true, + color: colors.blue, + libelle: 'Autre collège sélectionné' + }, + { + circle: false, + color: 'rgba(0, 83, 179, 0.1)', + libelle: 'Zones de rattachement' + }, + { + circle: false, + color: 'rgba(0, 83, 179, 0.5)', + libelle: 'Zones de rattachement du collège sélectionné' + } +] + +const Legend = () => { + const [isWrap, setIsWrap] = useState(true) + + return ( +
setIsWrap(false)} + onMouseLeave={() => setIsWrap(true)} + > +
Légende
+ + {!isWrap && ( +
+ {legend.map(({libelle, color, circle}) => ( +
+
+
+
{libelle}
+
+
+ ))} +
+ )} + + +
+ + ) +} + +export default Legend