From 188965d1ca8e019e088eeccb1eab9b4b30457d82 Mon Sep 17 00:00:00 2001 From: Anton Date: Fri, 12 Jan 2024 21:04:22 +0100 Subject: [PATCH] disabled click propagation in layer control --- .../Map/Subcomponents/LayerControl.tsx | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/Components/Map/Subcomponents/LayerControl.tsx b/src/Components/Map/Subcomponents/LayerControl.tsx index 3ba2c176..146352ef 100644 --- a/src/Components/Map/Subcomponents/LayerControl.tsx +++ b/src/Components/Map/Subcomponents/LayerControl.tsx @@ -1,4 +1,5 @@ import * as React from 'react' +import * as L from 'leaflet' import { useLayers } from '../hooks/useLayers'; import { useAddVisibleLayer, useIsLayerVisible, useToggleVisibleLayer } from '../hooks/useFilter'; import { useEffect } from 'react'; @@ -8,6 +9,14 @@ export function LayerControl() { const [open, setOpen] = React.useState(false); const layers = useLayers(); + const controlContainerRef = React.createRef() + + React.useEffect(() => { + if (controlContainerRef.current !== null) { + L.DomEvent.disableClickPropagation(controlContainerRef.current) + L.DomEvent.disableScrollPropagation(controlContainerRef.current) + } + }, [controlContainerRef]) useEffect(() => { layers.map(layer => @@ -21,24 +30,28 @@ export function LayerControl() { const addVisibleLayer = useAddVisibleLayer(); return ( -
e.stopPropagation()}> +
e.stopPropagation()}> { open ?
e.stopPropagation()}> - - +
    { layers.map(layer =>
  • - ) } -
: -
setOpen(true)}> +
{ + e.stopPropagation() + setOpen(true) + }}>