@@ -15,6 +15,7 @@ import {useCallback, useEffect, useMemo, useRef, useState} from 'react';
1515
1616import { type Filter , type NumberCondition , type StringCondition } from '@parca/client' ;
1717
18+ import { useResetFlameGraphState } from '../../hooks/useResetFlameGraphState' ;
1819import { getPresetByKey , isPresetKey } from './filterPresets' ;
1920import { useProfileFiltersUrlState } from './useProfileFiltersUrlState' ;
2021
@@ -226,6 +227,7 @@ export const useProfileFilters = (): {
226227 resetFilters : ( ) => void ;
227228} => {
228229 const { appliedFilters, setAppliedFilters} = useProfileFiltersUrlState ( ) ;
230+ const resetFlameGraphState = useResetFlameGraphState ( ) ;
229231
230232 const [ localFilters , setLocalFilters ] = useState < ProfileFilter [ ] > ( appliedFilters ?? [ ] ) ;
231233
@@ -327,9 +329,10 @@ export const useProfileFilters = (): {
327329 // Auto-apply the filter since it has a value
328330 const filtersToApply = [ ...( appliedFilters ?? [ ] ) , newFilter ] ;
329331 setAppliedFilters ( filtersToApply ) ;
332+ resetFlameGraphState ( ) ;
330333 } ,
331334 // eslint-disable-next-line react-hooks/exhaustive-deps
332- [ setAppliedFilters ]
335+ [ setAppliedFilters , resetFlameGraphState ]
333336 ) ;
334337
335338 const removeExcludeBinary = useCallback (
@@ -349,12 +352,13 @@ export const useProfileFilters = (): {
349352 f => f . id !== filterToRemove . id
350353 ) ;
351354 setAppliedFilters ( updatedAppliedFilters ) ;
355+ resetFlameGraphState ( ) ;
352356
353357 // Also remove from local filters
354358 setLocalFilters ( localFiltersRef . current . filter ( f => f . id !== filterToRemove . id ) ) ;
355359 }
356360 } ,
357- [ appliedFilters , setAppliedFilters ]
361+ [ appliedFilters , setAppliedFilters , resetFlameGraphState ]
358362 ) ;
359363
360364 const removeFilter = useCallback ( ( id : string ) => {
@@ -368,7 +372,8 @@ export const useProfileFilters = (): {
368372 const resetFilters = useCallback ( ( ) => {
369373 setLocalFilters ( [ ] ) ;
370374 setAppliedFilters ( [ ] ) ;
371- } , [ setAppliedFilters ] ) ;
375+ resetFlameGraphState ( ) ;
376+ } , [ setAppliedFilters , resetFlameGraphState ] ) ;
372377
373378 const onApplyFilters = useCallback ( ( ) : void => {
374379 const validFilters = localFiltersRef . current . filter ( f => {
@@ -386,7 +391,8 @@ export const useProfileFilters = (): {
386391 } ) ) ;
387392
388393 setAppliedFilters ( filtersToApply ) ;
389- } , [ setAppliedFilters ] ) ;
394+ resetFlameGraphState ( ) ;
395+ } , [ setAppliedFilters , resetFlameGraphState ] ) ;
390396
391397 const protoFilters = useMemo ( ( ) => {
392398 return convertToProtoFilters ( appliedFilters ?? [ ] ) ;
0 commit comments