diff --git a/src/components/Map/markerManager.js b/src/components/Map/markerManager.js index 0333420..8af6da9 100644 --- a/src/components/Map/markerManager.js +++ b/src/components/Map/markerManager.js @@ -1964,8 +1964,8 @@ export function openCenteredOverlay({ map, post, theme, fullScreen = false }) { }; const voteUp = rail.querySelector(".sw-truth-rail-btn-up"); const voteDown = rail.querySelector(".sw-truth-rail-btn-down"); - if (voteUp) voteUp.addEventListener("click", () => doVote("true")); - if (voteDown) voteDown.addEventListener("click", () => doVote("false")); + if (voteUp) voteUp.addEventListener("click", (e) => { e.stopPropagation(); doVote("true"); }); + if (voteDown) voteDown.addEventListener("click", (e) => { e.stopPropagation(); doVote("false"); }); } applyAuthUI(); diff --git a/src/components/Map/usePostsEngine.js b/src/components/Map/usePostsEngine.js index b12cd12..37d0a4a 100644 --- a/src/components/Map/usePostsEngine.js +++ b/src/components/Map/usePostsEngine.js @@ -1427,7 +1427,13 @@ export function usePostsEngine({ } if (changed) { allPostsRef.current = updated; - refreshVisibleAndMarkers(timeHours, true); + // Skip full marker refresh if this post's modal is open - we update UI in-place below + const map = mapRef.current; + const ov = map?.__swCenteredOverlay; + const isModalOpen = ov && ov.postId === postId; + if (!isModalOpen) { + refreshVisibleAndMarkers(timeHours, true); + } } };