Skip to content

Commit

Permalink
feat(web): clear analysis results when changing input fasta
Browse files Browse the repository at this point in the history
  • Loading branch information
ivan-aksamentov committed Dec 13, 2023
1 parent b153442 commit 370ad51
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 4 deletions.
1 change: 1 addition & 0 deletions packages_rs/nextclade-web/src/hooks/useRunAnalysis.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ export function useRunAnalysis() {
set(showNewRunPopupAtom, false)

reset(analysisResultsAtom)
reset(treeAtom)
reset(viewedCdsAtom)
reset(cdsOrderPreferenceAtom)

Expand Down
35 changes: 31 additions & 4 deletions packages_rs/nextclade-web/src/state/inputs.state.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { isEmpty } from 'lodash'
import { useCallback, useEffect } from 'react'
import { atom, selector, useRecoilState, useResetRecoilState } from 'recoil'
import { cdsOrderPreferenceAtom } from 'src/state/dataset.state'
import { analysisResultsAtom, analysisStatusGlobalAtom, treeAtom } from 'src/state/results.state'
import { viewedCdsAtom } from 'src/state/seqViewSettings.state'
import { AlgorithmInput } from 'src/types'
import { notUndefinedOrNull } from 'src/helpers/notUndefined'
import { useResetSuggestions } from 'src/hooks/useResetSuggestions'
Expand All @@ -15,24 +18,48 @@ export function useQuerySeqInputs() {
const resetSeqInputsStorage = useResetRecoilState(qrySeqInputsStorageAtom)
const resetSuggestions = useResetSuggestions()

const resetAnalysisStatusGlobal = useResetRecoilState(analysisStatusGlobalAtom)
const resetAnalysisResults = useResetRecoilState(analysisResultsAtom)
const resetTree = useResetRecoilState(treeAtom)
const resetViewedCds = useResetRecoilState(viewedCdsAtom)
const resetCdsOrderPreference = useResetRecoilState(cdsOrderPreferenceAtom)

const clearResults = useCallback(() => {
resetSuggestions()
resetAnalysisStatusGlobal()
resetAnalysisResults()
resetTree()
resetViewedCds()
resetCdsOrderPreference()
}, [
resetAnalysisResults,
resetAnalysisStatusGlobal,
resetCdsOrderPreference,
resetSuggestions,
resetTree,
resetViewedCds,
])

const addQryInputs = useCallback(
(newInputs: AlgorithmInput[]) => {
setQryInputs((inputs) => [...inputs, ...newInputs])
clearResults()
},
[setQryInputs],
[clearResults, setQryInputs],
)

const removeQryInput = useCallback(
(index: number) => {
setQryInputs((inputs) => inputs.filter((_, i) => i !== index))
clearResults()
},
[setQryInputs],
[clearResults, setQryInputs],
)

const clearQryInputs = useCallback(() => {
resetSuggestions()
resetSeqInputsStorage()
}, [resetSeqInputsStorage, resetSuggestions])
clearResults()
}, [clearResults, resetSeqInputsStorage])

useEffect(() => {
if (qryInputs.length === 0) {
Expand Down

0 comments on commit 370ad51

Please sign in to comment.