From 33e8fdba423b8342f13e701ad8527fc35c4425b9 Mon Sep 17 00:00:00 2001 From: Corey Robertson Date: Tue, 14 Sep 2021 15:14:20 -0400 Subject: [PATCH] Don't use LegacyURI Redirect if in screenshot mode --- src/plugins/dashboard/kibana.json | 8 +++++++- .../dashboard/public/application/dashboard_router.tsx | 2 ++ .../public/application/hooks/use_dashboard_app_state.ts | 8 +++++++- src/plugins/dashboard/public/plugin.tsx | 2 ++ src/plugins/dashboard/public/types.ts | 2 ++ 5 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/plugins/dashboard/kibana.json b/src/plugins/dashboard/kibana.json index 164be971d22b772..9def8156d1becbd 100644 --- a/src/plugins/dashboard/kibana.json +++ b/src/plugins/dashboard/kibana.json @@ -19,7 +19,13 @@ "presentationUtil", "visualizations" ], - "optionalPlugins": ["home", "spaces", "savedObjectsTaggingOss", "usageCollection"], + "optionalPlugins": [ + "home", + "spaces", + "savedObjectsTaggingOss", + "screenshotMode", + "usageCollection" + ], "server": true, "ui": true, "requiredBundles": ["home", "kibanaReact", "kibanaUtils", "presentationUtil"] diff --git a/src/plugins/dashboard/public/application/dashboard_router.tsx b/src/plugins/dashboard/public/application/dashboard_router.tsx index ba18b85a73b2bf9..4de93a67672fc72 100644 --- a/src/plugins/dashboard/public/application/dashboard_router.tsx +++ b/src/plugins/dashboard/public/application/dashboard_router.tsx @@ -84,6 +84,7 @@ export async function mountApp({ savedObjectsTaggingOss, visualizations, presentationUtil, + screenshotMode, } = pluginsStart; const activeSpaceId = @@ -130,6 +131,7 @@ export async function mountApp({ activeSpaceId || 'default' ), spacesService: spacesApi, + screenshotModeService: screenshotMode, }; const getUrlStateStorage = (history: RouteComponentProps['history']) => diff --git a/src/plugins/dashboard/public/application/hooks/use_dashboard_app_state.ts b/src/plugins/dashboard/public/application/hooks/use_dashboard_app_state.ts index ad2aa3cbb902c59..c942a86c380cdf8 100644 --- a/src/plugins/dashboard/public/application/hooks/use_dashboard_app_state.ts +++ b/src/plugins/dashboard/public/application/hooks/use_dashboard_app_state.ts @@ -92,6 +92,7 @@ export const useDashboardAppState = ({ dashboardSessionStorage, scopedHistory, spacesService, + screenshotModeService, } = services; const { docTitle } = chrome; const { notifications } = core; @@ -151,7 +152,11 @@ export const useDashboardAppState = ({ // If the saved dashboard is an alias match, then we will redirect if (savedDashboard.outcome === 'aliasMatch') { - spacesService?.ui.redirectLegacyUrl(savedDashboard.getFullPath()); + if (screenshotModeService?.isScreenshotMode()) { + scopedHistory().replace(savedDashboard.getFullPath()); + } else { + spacesService?.ui.redirectLegacyUrl(savedDashboard.getFullPath()); + } } /** @@ -344,6 +349,7 @@ export const useDashboardAppState = ({ query, data, spacesService?.ui, + screenshotModeService, ]); /** diff --git a/src/plugins/dashboard/public/plugin.tsx b/src/plugins/dashboard/public/plugin.tsx index acaf1cee7092b41..1888ce1f6e4992b 100644 --- a/src/plugins/dashboard/public/plugin.tsx +++ b/src/plugins/dashboard/public/plugin.tsx @@ -12,6 +12,7 @@ import { filter, map } from 'rxjs/operators'; import { Start as InspectorStartContract } from 'src/plugins/inspector/public'; import { UrlForwardingSetup, UrlForwardingStart } from 'src/plugins/url_forwarding/public'; +import { ScreenshotModePluginStart } from 'src/plugins/screenshot_mode/public'; import { APP_WRAPPER_CLASS } from '../../../core/public'; import { App, @@ -118,6 +119,7 @@ export interface DashboardStartDependencies { savedObjects: SavedObjectsStart; presentationUtil: PresentationUtilPluginStart; savedObjectsTaggingOss?: SavedObjectTaggingOssPluginStart; + screenshotMode?: ScreenshotModePluginStart; spaces?: SpacesPluginStart; visualizations: VisualizationsStart; } diff --git a/src/plugins/dashboard/public/types.ts b/src/plugins/dashboard/public/types.ts index 7db8102016c332d..651a51834a79474 100644 --- a/src/plugins/dashboard/public/types.ts +++ b/src/plugins/dashboard/public/types.ts @@ -19,6 +19,7 @@ import type { import { History } from 'history'; import { AnyAction, Dispatch } from 'redux'; import { BehaviorSubject, Subject } from 'rxjs'; +import { ScreenshotModePluginStart } from 'src/plugins/screenshot_mode/public'; import { Query, Filter, IndexPattern, RefreshInterval, TimeRange } from './services/data'; import { ContainerInput, EmbeddableInput, ViewMode } from './services/embeddable'; import { SharePluginStart } from './services/share'; @@ -205,4 +206,5 @@ export interface DashboardAppServices { setHeaderActionMenu: AppMountParameters['setHeaderActionMenu']; savedQueryService: DataPublicPluginStart['query']['savedQueries']; spacesService?: SpacesPluginStart; + screenshotModeService?: ScreenshotModePluginStart; }