How-to
Filter Persistence Across Pages
How the time range and source filters are remembered when you navigate between pages.
1 min readLast updated 26 April 2026
Filter Persistence
When you change the time range (1h, 24h, 7d, 30d, etc.) or the source filter on any page, that choice now persists across page navigation.
How it works
The hook checks three sources in order:
- URL query parameter — if the page URL has
?range=7d, that wins. Bookmarks and shared links work as expected. - localStorage — if the URL has no
?range=param, the hook falls back to the last value you explicitly chose on any page. - Hard-coded default —
24hfor range,null(all sources) for source.
What changed
Before 2026-04-25, navigating from /overview?range=7d to /offenders lost the ?range= param because React Router doesn't carry search params across links. The range appeared to "reset" to 24h every time you changed pages. Now the operator's last choice carries forward.
Edge cases
- Incognito / localStorage unavailable — falls through to the 24h default, no crash.
- Two browser tabs with different ranges — last writer wins. Each tab shows its own state until it navigates or refreshes.
- Cleared localStorage / fresh browser — defaults to 24h, identical to pre-fix behaviour.
Storage keys (for the curious)
blankitt-edge:range— one of5m/15m/30m/1h/2h/6h/24h/7d/30dblankitt-edge:source— source UUID, or absent when "all sources" is selected