diff --git a/public/app/features/logs/components/PopoverMenu.test.tsx b/public/app/features/explore/Logs/PopoverMenu.test.tsx similarity index 97% rename from public/app/features/logs/components/PopoverMenu.test.tsx rename to public/app/features/explore/Logs/PopoverMenu.test.tsx index 1c52e84cb68..879e9fc0be5 100644 --- a/public/app/features/logs/components/PopoverMenu.test.tsx +++ b/public/app/features/explore/Logs/PopoverMenu.test.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(); diff --git a/public/app/features/logs/components/PopoverMenu.tsx b/public/app/features/explore/Logs/PopoverMenu.tsx similarity index 95% rename from public/app/features/logs/components/PopoverMenu.tsx rename to public/app/features/explore/Logs/PopoverMenu.tsx index 6d062d4f4bc..5d2fb53f0e1 100644 --- a/public/app/features/logs/components/PopoverMenu.tsx +++ b/public/app/features/explore/Logs/PopoverMenu.tsx @@ -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', }); } diff --git a/public/app/features/logs/components/LogRows.test.tsx b/public/app/features/logs/components/LogRows.test.tsx index b2527d2055b..f412cb22cf7 100644 --- a/public/app/features/logs/components/LogRows.test.tsx +++ b/public/app/features/logs/components/LogRows.test.tsx @@ -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( { 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(); + }); }); diff --git a/public/app/features/logs/components/LogRows.tsx b/public/app/features/logs/components/LogRows.tsx index 4485bad5a1d..c04217e3ab9 100644 --- a/public/app/features/logs/components/LogRows.tsx +++ b/public/app/features/logs/components/LogRows.tsx @@ -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 { }; popoverMenuSupported() { - if (!config.featureToggles.logRowsPopoverMenu) { + if (!config.featureToggles.logRowsPopoverMenu || this.props.app !== CoreApp.Explore) { return false; } return Boolean(this.props.onClickFilterOutValue || this.props.onClickFilterValue);