2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-07-06 21:50:55 +00:00

Fix for table filtering logic (#9949)

* Fix for table filtering logic

- Disable table filters if custom filters supplied
- Handle search term better

* Logic Fix

* Tweak unit test
This commit is contained in:
Oliver
2025-07-04 10:24:02 +10:00
committed by GitHub
parent 4307e6d170
commit a954555eb7
3 changed files with 11 additions and 15 deletions

View File

@ -413,18 +413,16 @@ export function InvenTreeTable<T extends Record<string, any>>({
...tableProps.params
};
// Add custom filters
if (tableState.filterSet.activeFilters) {
tableState.filterSet.activeFilters.forEach((flt) => {
queryParams[flt.name] = flt.value;
});
}
// Allow override of filters based on URL query parameters
if (tableState.queryFilters) {
if (tableState.queryFilters && tableState.queryFilters.size > 0) {
// Allow override of filters based on URL query parameters
for (const [key, value] of tableState.queryFilters) {
queryParams[key] = value;
}
} else if (tableState.filterSet.activeFilters) {
// Use custom table filters only if not overridden by query parameters
tableState.filterSet.activeFilters.forEach((flt) => {
queryParams[flt.name] = flt.value;
});
}
// Add custom search term

View File

@ -137,12 +137,8 @@ export default function InvenTreeTableHeader({
}, [tableState.queryFilters]);
const hasCustomFilters = useMemo(() => {
if (hasCustomSearch) {
return tableState.queryFilters.size > 1;
} else {
return tableState.queryFilters.size > 0;
}
}, [hasCustomSearch, tableState.queryFilters]);
return (tableState?.queryFilters?.size ?? 0) > 0;
}, [tableState.queryFilters]);
return (
<>

View File

@ -28,6 +28,8 @@ test('Plugins - Settings', async ({ browser, request }) => {
await navigate(page, 'settings/admin/plugin/');
await clearTableFilters(page);
await page.getByLabel('table-search-input').fill('integration');
await page.waitForTimeout(250);
await page.waitForLoadState('networkidle');
await page
.getByRole('row', { name: 'SampleIntegrationPlugin' })