diff --git a/src/frontend/src/tables/InvenTreeTable.tsx b/src/frontend/src/tables/InvenTreeTable.tsx index 483ff23c1b..dfee2841b2 100644 --- a/src/frontend/src/tables/InvenTreeTable.tsx +++ b/src/frontend/src/tables/InvenTreeTable.tsx @@ -413,18 +413,16 @@ export function InvenTreeTable>({ ...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 diff --git a/src/frontend/src/tables/InvenTreeTableHeader.tsx b/src/frontend/src/tables/InvenTreeTableHeader.tsx index 5c6047a3a1..fefedca771 100644 --- a/src/frontend/src/tables/InvenTreeTableHeader.tsx +++ b/src/frontend/src/tables/InvenTreeTableHeader.tsx @@ -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 ( <> diff --git a/src/frontend/tests/pui_plugins.spec.ts b/src/frontend/tests/pui_plugins.spec.ts index 30783d8c43..0eab513229 100644 --- a/src/frontend/tests/pui_plugins.spec.ts +++ b/src/frontend/tests/pui_plugins.spec.ts @@ -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' })