diff --git a/frontend/src/component/project/Project/ProjectFeatureToggles/ProjectFeatureToggles.tsx b/frontend/src/component/project/Project/ProjectFeatureToggles/ProjectFeatureToggles.tsx
index d676d10d37..448fec240a 100644
--- a/frontend/src/component/project/Project/ProjectFeatureToggles/ProjectFeatureToggles.tsx
+++ b/frontend/src/component/project/Project/ProjectFeatureToggles/ProjectFeatureToggles.tsx
@@ -1,7 +1,7 @@
import { useCallback, useEffect, useMemo, useState } from 'react';
import { Add } from '@mui/icons-material';
import { useNavigate, useSearchParams } from 'react-router-dom';
-import { useFilters, useSortBy, useTable } from 'react-table';
+import { useGlobalFilter, useSortBy, useTable } from 'react-table';
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
import { PageHeader } from 'component/common/PageHeader/PageHeader';
import { PageContent } from 'component/common/PageContent/PageContent';
@@ -181,14 +181,12 @@ export const ProjectFeatureToggles = ({
Cell: FeatureSeenCell,
sortType: 'date',
align: 'center',
- disableGlobalFilter: true,
},
{
Header: 'Type',
accessor: 'type',
Cell: FeatureTypeCell,
align: 'center',
- disableGlobalFilter: true,
},
{
Header: 'Feature toggle name',
@@ -203,14 +201,14 @@ export const ProjectFeatureToggles = ({
minWidth: 100,
maxWidth: 200,
sortType: 'alphanumeric',
+ disableGlobalFilter: false,
},
{
Header: 'Created',
accessor: 'createdAt',
Cell: DateCell,
sortType: 'date',
- align: 'center',
- disableGlobalFilter: true,
+ minWidth: 120,
},
...environments.map(name => ({
Header: loading ? () => '' : name,
@@ -218,7 +216,6 @@ export const ProjectFeatureToggles = ({
minWidth: 90,
accessor: `environments.${name}`,
align: 'center',
- disableGlobalFilter: true,
Cell: ({
value,
row: { original: feature },
@@ -248,7 +245,6 @@ export const ProjectFeatureToggles = ({
),
disableSortBy: true,
- disableGlobalFilter: true,
},
],
[projectId, environments, onToggle, loading]
@@ -294,9 +290,7 @@ export const ProjectFeatureToggles = ({
},
],
hiddenColumns,
- filters: [
- { id: 'name', value: searchParams.get('search') || '' },
- ],
+ globalFilter: searchParams.get('search') || '',
};
},
[environments] // eslint-disable-line react-hooks/exhaustive-deps
@@ -306,11 +300,11 @@ export const ProjectFeatureToggles = ({
allColumns,
headerGroups,
rows,
- state: { filters, sortBy, hiddenColumns },
+ state: { globalFilter, sortBy, hiddenColumns },
getTableBodyProps,
getTableProps,
prepareRow,
- setFilter,
+ setGlobalFilter,
setHiddenColumns,
} = useTable(
{
@@ -321,18 +315,14 @@ export const ProjectFeatureToggles = ({
autoResetGlobalFilter: false,
disableSortRemove: true,
autoResetSortBy: false,
+ defaultColumn: {
+ disableGlobalFilter: true,
+ },
},
- useFilters,
+ useGlobalFilter,
useSortBy
);
- const filter = useMemo(
- () =>
- filters?.find(filterRow => filterRow?.id === 'name')?.value ||
- initialState.filters[0].value,
- [filters, initialState]
- );
-
useEffect(() => {
if (loading) {
return;
@@ -342,8 +332,8 @@ export const ProjectFeatureToggles = ({
if (sortBy[0].desc) {
tableState.order = 'desc';
}
- if (filter) {
- tableState.search = filter;
+ if (globalFilter) {
+ tableState.search = globalFilter;
}
tableState.columns = allColumns
.map(({ id }) => id)
@@ -356,7 +346,8 @@ export const ProjectFeatureToggles = ({
setSearchParams(tableState, {
replace: true,
});
- }, [loading, sortBy, hiddenColumns, filter, setSearchParams, allColumns]);
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [loading, sortBy, hiddenColumns, globalFilter, setSearchParams]);
const onCustomizeColumns = useCallback(
visibleColumns => {
@@ -383,8 +374,8 @@ export const ProjectFeatureToggles = ({
actions={
<>
setFilter('name', value)}
+ initialValue={globalFilter}
+ onChange={value => setGlobalFilter(value)}
/>
}
>
-
+
0}
+ condition={globalFilter?.length > 0}
show={
No features found matching “
- {filter}
+ {globalFilter}
”
}