diff --git a/.changeset/lucky-colts-raise.md b/.changeset/lucky-colts-raise.md new file mode 100644 index 000000000..5a784faf6 --- /dev/null +++ b/.changeset/lucky-colts-raise.md @@ -0,0 +1,5 @@ +--- +"@hyperdx/app": patch +--- + +fix: Switch to 'all' after filters change on kubernetes dashboard page diff --git a/packages/app/src/KubernetesDashboardPage.tsx b/packages/app/src/KubernetesDashboardPage.tsx index 79ef7630d..b22ac0bc7 100644 --- a/packages/app/src/KubernetesDashboardPage.tsx +++ b/packages/app/src/KubernetesDashboardPage.tsx @@ -140,6 +140,13 @@ export const InfraPodsStatusTable = ({ where: string; }) => { const [phaseFilter, setPhaseFilter] = React.useState('running'); + + // Auto-switch to "All" when search filters are applied + useEffect(() => { + if (where) { + setPhaseFilter('all'); + } + }, [where]); const [sortState, setSortState] = React.useState<{ column: InfraPodsStatusTableColumn; order: 'asc' | 'desc'; diff --git a/packages/app/tests/e2e/features/kubernetes.spec.ts b/packages/app/tests/e2e/features/kubernetes.spec.ts index 23b5bfa4f..932ced54d 100644 --- a/packages/app/tests/e2e/features/kubernetes.spec.ts +++ b/packages/app/tests/e2e/features/kubernetes.spec.ts @@ -148,4 +148,24 @@ test.describe('Kubernetes Dashboard', { tag: ['@kubernetes'] }, () => { 'ResourceAttributes.k8s.namespace.name:"default"', ); }); + + test('should switch to "All" tab when filtering by pod or namespace', async ({ + page, + }) => { + // Verify initial state is "Running" + const podsTable = page.getByTestId('k8s-pods-table'); + const runningTab = podsTable.getByRole('radio', { name: 'Running' }); + await expect(runningTab).toBeChecked(); + + // Filter by namespace + const namespaceFilter = page.getByTestId('namespace-filter-select'); + await namespaceFilter.click(); + await page.getByRole('option', { name: 'default' }).click(); + + await page.waitForTimeout(500); + + // Verify it switched to "All" tab + const allTab = podsTable.getByRole('radio', { name: 'All' }); + await expect(allTab).toBeChecked(); + }); });