From 7491c3d911eb992b95867b094b056dd99a15fc6f Mon Sep 17 00:00:00 2001 From: Carlos Ferreira Date: Tue, 10 Jun 2025 17:36:38 -0300 Subject: [PATCH 1/2] fix: Duplicate own position marker when change props --- android/src/main/assets/leaflet.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/assets/leaflet.html b/android/src/main/assets/leaflet.html index 49818dc..759cea8 100644 --- a/android/src/main/assets/leaflet.html +++ b/android/src/main/assets/leaflet.html @@ -1 +1 @@ -
+
From c2a332312707ce1719a99fa092b457b7e9f78a8a Mon Sep 17 00:00:00 2001 From: Carlos Ferreira Date: Wed, 11 Jun 2025 22:21:07 -0300 Subject: [PATCH 2/2] fix: Remove own position marker when not exists --- src/LeafletView/index.tsx | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/src/LeafletView/index.tsx b/src/LeafletView/index.tsx index 582a7c2..0e969ed 100644 --- a/src/LeafletView/index.tsx +++ b/src/LeafletView/index.tsx @@ -78,6 +78,7 @@ const LeafletView: React.FC = ({ }) => { const webViewRef = useRef(null); const [initialized, setInitialized] = useState(false); + const ownPositionMarkerRef = useRef(false); const logMessage = useCallback( (message: string) => { @@ -206,13 +207,31 @@ const LeafletView: React.FC = ({ //Handle ownPositionMarker update useEffect(() => { - if (!initialized || !ownPositionMarker) { + if (!initialized) { return; } - sendMessage({ - ownPositionMarker: { ...ownPositionMarker, id: OWN_POSTION_MARKER_ID }, - }); - }, [initialized, ownPositionMarker, sendMessage]); + + if (ownPositionMarker) { + ownPositionMarkerRef.current = true; + sendMessage({ + ownPositionMarker: { ...ownPositionMarker, id: OWN_POSTION_MARKER_ID }, + }); + } else if (ownPositionMarkerRef.current) { + ownPositionMarkerRef.current = false; + sendMessage({ + ownPositionMarker: { + id: OWN_POSTION_MARKER_ID, + position: { + lat: 0, + lng: 0, + }, + title: '', + size: [0, 0], + icon: '', + }, + }); + } + }, [initialized, ownPositionMarker, sendMessage, ownPositionMarkerRef]); //Handle mapCenterPosition update useEffect(() => {