Popover menu: update tracking attributes + move under Explore/logs (#78739)

* Popover menu: update event tracking attributes

* Popover menu: move under explore/loggs

* Popover menu: narrow down support to only Explore app
pull/78744/head
Matias Chomicki 2 years ago committed by GitHub
parent ec7d09b8e0
commit 630b8a30be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      public/app/features/explore/Logs/PopoverMenu.test.tsx
  2. 6
      public/app/features/explore/Logs/PopoverMenu.tsx
  3. 10
      public/app/features/logs/components/LogRows.test.tsx
  4. 4
      public/app/features/logs/components/LogRows.tsx

@ -2,8 +2,9 @@ import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import React from 'react';
import { createLogRow } from '../../logs/components/__mocks__/logRow';
import { PopoverMenu } from './PopoverMenu';
import { createLogRow } from './__mocks__/logRow';
const row = createLogRow();

@ -5,7 +5,7 @@ import { GrafanaTheme2, LogRowModel } from '@grafana/data';
import { reportInteraction } from '@grafana/runtime';
import { Menu, useStyles2 } from '@grafana/ui';
import { copyText } from '../utils';
import { copyText } from '../../logs/utils';
interface PopoverMenuProps {
selection: string;
@ -87,8 +87,8 @@ export const PopoverMenu = ({
function track(action: string, selectionLength: number, dataSourceType: string | undefined) {
reportInteraction(`grafana_explore_logs_popover_menu`, {
action,
selection_length: selectionLength,
ds_type: dataSourceType || 'unknown',
selectionLength: selectionLength,
datasourceType: dataSourceType || 'unknown',
});
}

@ -3,7 +3,7 @@ import userEvent from '@testing-library/user-event';
import { range } from 'lodash';
import React from 'react';
import { LogRowModel, LogsDedupStrategy, LogsSortOrder } from '@grafana/data';
import { CoreApp, LogRowModel, LogsDedupStrategy, LogsSortOrder } from '@grafana/data';
import { LogRows, PREVIEW_LIMIT } from './LogRows';
import { createLogRow } from './__mocks__/logRow';
@ -207,7 +207,7 @@ describe('LogRows', () => {
});
describe('Popover menu', () => {
function setup() {
function setup(app = CoreApp.Explore) {
const rows: LogRowModel[] = [createLogRow({ uid: '1' })];
return render(
<LogRows
@ -223,6 +223,7 @@ describe('Popover menu', () => {
displayedFields={[]}
onClickFilterOutValue={() => {}}
onClickFilterValue={() => {}}
app={app}
/>
);
}
@ -247,4 +248,9 @@ describe('Popover menu', () => {
expect(screen.getByText('Add as line contains filter')).toBeInTheDocument();
expect(screen.getByText('Add as line does not contain filter')).toBeInTheDocument();
});
it('Does not appear outside Explore', async () => {
setup(CoreApp.Unknown);
await userEvent.click(screen.getByText('log message 1'));
expect(screen.queryByText('Copy selection')).not.toBeInTheDocument();
});
});

@ -15,12 +15,12 @@ import {
import { config } from '@grafana/runtime';
import { withTheme2, Themeable2 } from '@grafana/ui';
import { PopoverMenu } from '../../explore/Logs/PopoverMenu';
import { UniqueKeyMaker } from '../UniqueKeyMaker';
import { sortLogRows, targetIsElement } from '../utils';
//Components
import { LogRow } from './LogRow';
import { PopoverMenu } from './PopoverMenu';
import { getLogRowStyles } from './getLogRowStyles';
export const PREVIEW_LIMIT = 100;
@ -97,7 +97,7 @@ class UnThemedLogRows extends PureComponent<Props, State> {
};
popoverMenuSupported() {
if (!config.featureToggles.logRowsPopoverMenu) {
if (!config.featureToggles.logRowsPopoverMenu || this.props.app !== CoreApp.Explore) {
return false;
}
return Boolean(this.props.onClickFilterOutValue || this.props.onClickFilterValue);

Loading…
Cancel
Save