diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index dcd04ac309e..dc9564e190e 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -52,4 +52,5 @@ export interface FeatureToggles { alertProvisioning?: boolean; storageLocalUpload?: boolean; azureMonitorResourcePickerForMetrics?: boolean; + explore2Dashboard?: boolean; } diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index a55232ecbf3..af7f1baf424 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -201,5 +201,11 @@ var ( RequiresDevMode: true, FrontendOnly: true, }, + { + Name: "explore2Dashboard", + Description: "Experimental Explore to Dashboard workflow", + State: FeatureStateBeta, + FrontendOnly: true, + }, } ) diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index 06c470a7a72..078ecbda7e7 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -150,4 +150,8 @@ const ( // FlagAzureMonitorResourcePickerForMetrics // New UI for Azure Monitor Metrics Query FlagAzureMonitorResourcePickerForMetrics = "azureMonitorResourcePickerForMetrics" + + // FlagExplore2Dashboard + // Experimental Explore to Dashboard workflow + FlagExplore2Dashboard = "explore2Dashboard" ) diff --git a/public/app/features/explore/ExploreToolbar.tsx b/public/app/features/explore/ExploreToolbar.tsx index f38824de47f..af8030b01e9 100644 --- a/public/app/features/explore/ExploreToolbar.tsx +++ b/public/app/features/explore/ExploreToolbar.tsx @@ -1,9 +1,9 @@ -import React, { PureComponent, RefObject } from 'react'; +import React, { lazy, PureComponent, RefObject, Suspense } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import { ExploreId } from 'app/types/explore'; import { PageToolbar, SetInterval, ToolbarButton, ToolbarButtonRow } from '@grafana/ui'; import { DataSourceInstanceSettings, RawTimeRange } from '@grafana/data'; -import { DataSourcePicker } from '@grafana/runtime'; +import { config, DataSourcePicker } from '@grafana/runtime'; import { StoreState } from 'app/types/store'; import { createAndCopyShortLink } from 'app/core/utils/shortLinks'; import { changeDatasource } from './state/datasource'; @@ -18,7 +18,10 @@ import { LiveTailControls } from './useLiveTailControls'; import { cancelQueries, runQueries } from './state/query'; import { isSplit } from './state/selectors'; import { DashNavButton } from '../dashboard/components/DashNav/DashNavButton'; -import { AddToDashboard } from './AddToDashboard'; + +const AddToDashboard = lazy(() => + import('./AddToDashboard').then(({ AddToDashboard }) => ({ default: AddToDashboard })) +); interface OwnProps { exploreId: ExploreId; @@ -116,7 +119,11 @@ class UnConnectedExploreToolbar extends PureComponent { )} - + {config.featureToggles.explore2Dashboard && ( + + + + )} {!isLive && (