Fix filter changes not triggering refetch
- Add mainFilters/subFilters arrays to usePostsEngine - Update filterKey to use full arrays for comparison - Any filter toggle now triggers fresh API fetch 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
01e3ef2362
commit
bb0a5187b7
|
|
@ -507,7 +507,9 @@ export default function MapView({
|
||||||
mapRef,
|
mapRef,
|
||||||
viewParams,
|
viewParams,
|
||||||
mainFilter,
|
mainFilter,
|
||||||
|
mainFilters,
|
||||||
subFilter,
|
subFilter,
|
||||||
|
subFilters,
|
||||||
contentFilter,
|
contentFilter,
|
||||||
timeHours,
|
timeHours,
|
||||||
searchQuery,
|
searchQuery,
|
||||||
|
|
|
||||||
|
|
@ -373,7 +373,9 @@ export function usePostsEngine({
|
||||||
mapRef,
|
mapRef,
|
||||||
viewParams,
|
viewParams,
|
||||||
mainFilter,
|
mainFilter,
|
||||||
|
mainFilters = [], // Full array for cache key comparison
|
||||||
subFilter,
|
subFilter,
|
||||||
|
subFilters = [], // Full array for cache key comparison
|
||||||
contentFilter = "all",
|
contentFilter = "all",
|
||||||
timeHours,
|
timeHours,
|
||||||
searchQuery,
|
searchQuery,
|
||||||
|
|
@ -1018,7 +1020,10 @@ export function usePostsEngine({
|
||||||
|
|
||||||
const [lng, lat] = resolvedView.center;
|
const [lng, lat] = resolvedView.center;
|
||||||
const radiusKm = resolvedView.radiusKm || 750;
|
const radiusKm = resolvedView.radiusKm || 750;
|
||||||
const filterKey = `${mainFilter}|${subFilter}`;
|
// Include full arrays in filterKey so any toggle triggers refetch
|
||||||
|
const mainKey = mainFilters.length > 0 ? mainFilters.sort().join(",") : mainFilter;
|
||||||
|
const subKey = subFilters.length > 0 ? subFilters.sort().join(",") : subFilter;
|
||||||
|
const filterKey = `${mainKey}|${subKey}|${contentFilter}`;
|
||||||
const currentKey = `${filterKey}|${timeHours}`;
|
const currentKey = `${filterKey}|${timeHours}`;
|
||||||
const reqId = ++requestSeqRef.current;
|
const reqId = ++requestSeqRef.current;
|
||||||
let bounds = null;
|
let bounds = null;
|
||||||
|
|
@ -1218,7 +1223,8 @@ export function usePostsEngine({
|
||||||
delayedFetchRef.current = null;
|
delayedFetchRef.current = null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}, [viewParams, mapReady, mainFilter, subFilter, contentFilter, mapRef, timeHours, expandedElRef, refreshVisibleAndMarkers, computeVisible, onAutoWidenTimeFilter, syncMarkers, username]);
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
}, [viewParams, mapReady, mainFilter, JSON.stringify(mainFilters), subFilter, JSON.stringify(subFilters), contentFilter, mapRef, timeHours, expandedElRef, refreshVisibleAndMarkers, computeVisible, onAutoWidenTimeFilter, syncMarkers, username]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const q = (searchQuery || "").trim();
|
const q = (searchQuery || "").trim();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue