Skip to content

Commit

Permalink
fix(web): clear results table filters on run or when inputs are modified
Browse files Browse the repository at this point in the history
  • Loading branch information
ivan-aksamentov committed Dec 19, 2023
1 parent 0375c3e commit 07d0d18
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 1 deletion.
2 changes: 2 additions & 0 deletions packages_rs/nextclade-web/src/hooks/useRunAnalysis.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { changeColorBy } from 'auspice/src/actions/colors'
import { useRouter } from 'next/router'
import { useDispatch } from 'react-redux'
import { useRecoilCallback } from 'recoil'
import { clearAllFiltersAtom } from 'src/state/resultFilters.state'
import { viewedCdsAtom } from 'src/state/seqViewSettings.state'
import { AlgorithmGlobalStatus } from 'src/types'
import { sanitizeError } from 'src/helpers/sanitizeError'
Expand Down Expand Up @@ -48,6 +49,7 @@ export function useRunAnalysis() {
set(showNewRunPopupAtom, false)

reset(analysisResultsAtom)
reset(clearAllFiltersAtom)
reset(treeAtom)
reset(viewedCdsAtom)
reset(cdsOrderPreferenceAtom)
Expand Down
4 changes: 4 additions & 0 deletions packages_rs/nextclade-web/src/state/inputs.state.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { isEmpty } from 'lodash'
import { useCallback, useEffect } from 'react'
import { atom, selector, useRecoilState, useResetRecoilState } from 'recoil'
import { cdsOrderPreferenceAtom } from 'src/state/dataset.state'
import { clearAllFiltersAtom } from 'src/state/resultFilters.state'
import { analysisResultsAtom, analysisStatusGlobalAtom, treeAtom } from 'src/state/results.state'
import { viewedCdsAtom } from 'src/state/seqViewSettings.state'
import { AlgorithmInput } from 'src/types'
Expand All @@ -23,6 +24,7 @@ export function useQuerySeqInputs() {
const resetTree = useResetRecoilState(treeAtom)
const resetViewedCds = useResetRecoilState(viewedCdsAtom)
const resetCdsOrderPreference = useResetRecoilState(cdsOrderPreferenceAtom)
const clearAllFilters = useResetRecoilState(clearAllFiltersAtom)

const clearResults = useCallback(() => {
resetSuggestions()
Expand All @@ -31,7 +33,9 @@ export function useQuerySeqInputs() {
resetTree()
resetViewedCds()
resetCdsOrderPreference()
clearAllFilters()
}, [
clearAllFilters,
resetAnalysisResults,
resetAnalysisStatusGlobal,
resetCdsOrderPreference,
Expand Down
17 changes: 16 additions & 1 deletion packages_rs/nextclade-web/src/state/resultFilters.state.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { atom } from 'recoil'
import { atom, selector } from 'recoil'

export const seqNamesFilterAtom = atom<string>({
key: 'seqNamesFilter',
Expand Down Expand Up @@ -39,3 +39,18 @@ export const showErrorsFilterAtom = atom<boolean>({
key: 'showErrorsFilter',
default: true,
})

export const clearAllFiltersAtom = selector({
key: 'clearAllFiltersAtom',
get: () => undefined,
set: ({ reset }) => {
reset(seqNamesFilterAtom)
reset(mutationsFilterAtom)
reset(cladesFilterAtom)
reset(aaFilterAtom)
reset(showGoodFilterAtom)
reset(showMediocreFilterAtom)
reset(showBadFilterAtom)
reset(showErrorsFilterAtom)
},
})

0 comments on commit 07d0d18

Please sign in to comment.