mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	fix: state now persist to filters (#5559)
When navigating to features list, now it will respect the query params.
This commit is contained in:
		
							parent
							
								
									d9648de08d
								
							
						
					
					
						commit
						eda4186a6c
					
				@ -88,12 +88,12 @@ describe('FilterItem Component', () => {
 | 
			
		||||
        const operatorsElement = await screen.findByText('is any of');
 | 
			
		||||
 | 
			
		||||
        operatorsElement.click();
 | 
			
		||||
        const newOperator = await screen.findByText('is not any of');
 | 
			
		||||
        const newOperator = await screen.findByText('is none of');
 | 
			
		||||
 | 
			
		||||
        newOperator.click();
 | 
			
		||||
 | 
			
		||||
        expect(recordedChanges).toEqual([
 | 
			
		||||
            { operator: 'IS_NOT_ANY_OF', values: ['1', '3'] },
 | 
			
		||||
            { operator: 'IS_NONE_OF', values: ['1', '3'] },
 | 
			
		||||
        ]);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -47,15 +47,8 @@ export const FeatureToggleFilters: VFC<IFeatureToggleFiltersProps> = ({
 | 
			
		||||
            value: 'stale',
 | 
			
		||||
        },
 | 
			
		||||
    ];
 | 
			
		||||
    const defaultFilterItems: IFilterItem[] = [
 | 
			
		||||
        {
 | 
			
		||||
            label: 'State',
 | 
			
		||||
            options: stateOptions,
 | 
			
		||||
            filterKey: 'state',
 | 
			
		||||
        },
 | 
			
		||||
    ];
 | 
			
		||||
    const [availableFilters, setAvailableFilters] =
 | 
			
		||||
        useState<IFilterItem[]>(defaultFilterItems);
 | 
			
		||||
 | 
			
		||||
    const [availableFilters, setAvailableFilters] = useState<IFilterItem[]>([]);
 | 
			
		||||
    const removeFilter = (label: string) => {
 | 
			
		||||
        const filters = availableFilters.map((filter) =>
 | 
			
		||||
            filter.label === label
 | 
			
		||||
@ -74,17 +67,24 @@ export const FeatureToggleFilters: VFC<IFeatureToggleFiltersProps> = ({
 | 
			
		||||
            value: project.id,
 | 
			
		||||
        }));
 | 
			
		||||
 | 
			
		||||
        const newFilterItems = [
 | 
			
		||||
            ...defaultFilterItems,
 | 
			
		||||
        const newFilterItems: IFilterItem[] = [
 | 
			
		||||
            {
 | 
			
		||||
                label: 'State',
 | 
			
		||||
                options: stateOptions,
 | 
			
		||||
                filterKey: 'state',
 | 
			
		||||
                enabled: Boolean(state.state),
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                label: 'Project',
 | 
			
		||||
                options: projectsOptions,
 | 
			
		||||
                filterKey: 'project',
 | 
			
		||||
                enabled: Boolean(state.project),
 | 
			
		||||
            } as const,
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        setAvailableFilters(newFilterItems);
 | 
			
		||||
    }, [JSON.stringify(projects)]);
 | 
			
		||||
    }, [JSON.stringify(projects), JSON.stringify(state)]);
 | 
			
		||||
 | 
			
		||||
    return (
 | 
			
		||||
        <StyledBox>
 | 
			
		||||
            {availableFilters.map(
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user