Skip to content

Commit 17b21fd

Browse files
committed
fix(supernova): combine initial and url filters
1 parent 1020d89 commit 17b21fd

2 files changed

Lines changed: 7 additions & 6 deletions

File tree

apps/supernova/src/lib/urlStateUtils.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ export const readLegacyUrlState = (state: any) => {
1616
const activeFilters = state?.[ACTIVE_FILTERS]
1717
const pausedFilters = state?.[PAUSED_FILTERS]
1818
const searchTerm = state?.[SEARCH_TERM]
19-
const predefinedFilter = state?.[ACTIVE_PREDEFINED_FILTER]
20-
const showDetailsFor = state?.[DETAILS_FOR]
19+
const predefinedFilter = !isNaN(state?.[ACTIVE_PREDEFINED_FILTER]) ? state?.[ACTIVE_PREDEFINED_FILTER] : undefined // for some reason old state return NaN if the value not present
20+
const showDetailsFor = !isNaN(state?.[DETAILS_FOR]) ? state?.[DETAILS_FOR] : undefined // for some reason old state return NaN if the value not present
2121
const activeTab = state?.[ACTIVE_TAB]
2222
const silencesRegEx = state?.[SILENCE_REG_EX]
2323
const silencesStatus = state?.[SILENCE_STATUS]
@@ -65,8 +65,8 @@ export const getFiltersForUrl = (prefix: string, filters: any) => {
6565
}
6666

6767
export const convertAppStateToUrlState = (appState: any) => {
68-
const activeFiltersForUrl = getFiltersForUrl("f_", appState.activeFilters)
69-
const pausedFiltersForUrl = getFiltersForUrl("pf_", appState.pausedFilters)
68+
const activeFiltersForUrl = getFiltersForUrl("f_", appState.activeFilters || {})
69+
const pausedFiltersForUrl = getFiltersForUrl("pf_", appState.pausedFilters || {})
7070

7171
return {
7272
...activeFiltersForUrl,

apps/supernova/src/routes/alerts.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import RegionsList from "../components/regions/RegionsList"
1212
import AlertsTab from "../components/alerts/AlertsTab"
1313
import { ACTIVE_FILTERS_PREFIX, PAUSED_FILTERS_PREFIX } from "../constants"
1414
import { convertUrlStateToAppState } from "../lib/urlStateUtils"
15-
import { useGlobalsActions, useFilterActions } from "../components/StoreProvider"
15+
import { useGlobalsActions, useFilterActions, useActiveFilters } from "../components/StoreProvider"
1616

1717
const searchSchema = z
1818
.object({
@@ -61,14 +61,15 @@ function RouteComponent() {
6161
appStateFromUrl: { activeFilters, pausedFilters, predefinedFilter, searchTerm, showDetailsFor },
6262
} = Route.useRouteContext()
6363
const { setShowDetailsFor } = useGlobalsActions()
64+
const existingActiveFilters = useActiveFilters()
6465
const { setActiveFilters, setPausedFilters, setActivePredefinedFilter, setSearchTerm } = useFilterActions()
6566

6667
/**
6768
* TODO: remove it later because we don't need to sync the URL state with the Zustand store
6869
* we can directly consume it from the route context anywhere
6970
* */
7071
useLayoutEffect(() => {
71-
setActiveFilters(activeFilters)
72+
setActiveFilters({ ...existingActiveFilters, ...activeFilters }) // combine existing/initial filters with filters from URL state
7273
setPausedFilters(pausedFilters)
7374
setActivePredefinedFilter(predefinedFilter)
7475
setSearchTerm(searchTerm)

0 commit comments

Comments
 (0)