diff --git a/public/app/features/explore/TraceView/components/TracePageHeader/SearchBar/TracePageSearchBar.tsx b/public/app/features/explore/TraceView/components/TracePageHeader/SearchBar/TracePageSearchBar.tsx index ff8b6397e10..86f574891bc 100644 --- a/public/app/features/explore/TraceView/components/TracePageHeader/SearchBar/TracePageSearchBar.tsx +++ b/public/app/features/explore/TraceView/components/TracePageHeader/SearchBar/TracePageSearchBar.tsx @@ -89,12 +89,14 @@ export default memo(function TracePageSearchBar(props: TracePageSearchBarProps) value={showSpanFilterMatchesOnly} onChange={(value) => setShowSpanFilterMatchesOnly(value.currentTarget.checked ?? false)} label="Show matches only switch" + disabled={!spanFilterMatches?.size} /> @@ -139,16 +141,12 @@ export const getStyles = (theme: GrafanaTheme2) => { margin: 0 0 0 25px; vertical-align: middle; align-items: center; - - span { - cursor: pointer; - } `, clearMatchesButton: css` color: ${theme.colors.text.primary}; + &:hover { background: inherit; - color: inherit; } `, nextPrevResult: css` diff --git a/public/app/features/explore/TraceView/components/TracePageHeader/SpanFilters/SpanFilters.test.tsx b/public/app/features/explore/TraceView/components/TracePageHeader/SpanFilters/SpanFilters.test.tsx index 84fd36a0240..05f52f3e6c2 100644 --- a/public/app/features/explore/TraceView/components/TracePageHeader/SpanFilters/SpanFilters.test.tsx +++ b/public/app/features/explore/TraceView/components/TracePageHeader/SpanFilters/SpanFilters.test.tsx @@ -39,11 +39,17 @@ const trace: Trace = { logs: [{ fields: [{ key: 'LogKey1', type: 'string', value: 'LogValue1' }] }], }, ], + processes: { + '1ed38015486087ca': { + serviceName: 'Service0', + tags: [], + }, + }, } as unknown as Trace; describe('SpanFilters', () => { let user: ReturnType; - const SpanFiltersWithProps = ({ showFilters = true }) => { + const SpanFiltersWithProps = ({ showFilters = true, matches }: { showFilters?: boolean; matches?: Set }) => { const [search, setSearch] = useState(defaultFilters); const [showSpanFilterMatchesOnly, setShowSpanFilterMatchesOnly] = useState(false); const props = { @@ -54,7 +60,7 @@ describe('SpanFilters', () => { setShowSpanFilterMatchesOnly, search, setSearch, - spanFilterMatches: undefined, + spanFilterMatches: matches, setFocusedSpanIdForSearch: jest.fn(), datasourceType: 'tempo', }; @@ -197,7 +203,7 @@ describe('SpanFilters', () => { }); it('should allow resetting filters', async () => { - render(); + render(); const clearFiltersButton = screen.getByRole('button', { name: 'Clear filters button' }); expect(clearFiltersButton).toBeInTheDocument(); expect((clearFiltersButton as HTMLButtonElement)['disabled']).toBe(true);