diff --git a/src/components/Map/MapView.jsx b/src/components/Map/MapView.jsx index 63229cf..fd32a54 100644 --- a/src/components/Map/MapView.jsx +++ b/src/components/Map/MapView.jsx @@ -247,19 +247,29 @@ export default function MapView() { } }, [mainFilter, bottomCategories, subFilter]); - /* ================= MARKERS & TIME FILTER ================= */ + /* ================= MARKERS & FILTERS ================= */ - const rebuildMarkersForTimeFilter = (tf) => { + const rebuildMarkersForFilters = (tf) => { const map = mapRef.current; if (!map) return; clearAllMarkers(markersRef, expandedElRef); const posts = allPostsRef.current || []; + const catCode = categoryCode(mainFilter); - const visible = posts.filter((p) => - matchesTimeFilter(p.created_at || p.CreatedAt, tf) - ); + const visible = posts.filter((p) => { + // catégorie + if (catCode) { + const pc = (p.category || p.Category || "").toString().toUpperCase(); + if (pc !== catCode) return false; + } + // sous-catégorie + if (!matchesSubFilter(p, subFilter)) return false; + // temps + if (!matchesTimeFilter(p.created_at || p.CreatedAt, tf)) return false; + return true; + }); visible.forEach((post) => { createMarkerForPost(post, mapRef, markersRef, expandedElRef); @@ -342,7 +352,7 @@ export default function MapView() { filterKey, }; - rebuildMarkersForTimeFilter(timeFilter); + rebuildMarkersForFilters(timeFilter); setLoadingPosts(false); } catch (err) { console.error("Erreur chargement posts:", err); @@ -363,7 +373,7 @@ export default function MapView() { }, [viewParams, mainFilter, subFilter]); useEffect(() => { - rebuildMarkersForTimeFilter(timeFilter); + rebuildMarkersForFilters(timeFilter); // eslint-disable-next-line react-hooks/exhaustive-deps }, [timeFilter]); @@ -393,12 +403,9 @@ export default function MapView() { const p = msg.post; const catCode = categoryCode(mainFilter); - if ( - catCode && - p.category && - p.category.toUpperCase() !== catCode - ) { - return; + if (catCode) { + const pc = (p.category || p.Category || "").toString().toUpperCase(); + if (pc !== catCode) return; } if (!matchesSubFilter(p, subFilter)) return; @@ -727,7 +734,7 @@ export default function MapView() { )} - {/* SOCIOWALL + CHAT EN BAS */} + {/* SOCIOWALL + CHAT EN BAS (overlay) */}