diff --git a/public/app/features/dashboard-scene/saving/DashboardPrompt.tsx b/public/app/features/dashboard-scene/saving/DashboardPrompt.tsx index 59beb406ddb..6c0cde826f1 100644 --- a/public/app/features/dashboard-scene/saving/DashboardPrompt.tsx +++ b/public/app/features/dashboard-scene/saving/DashboardPrompt.tsx @@ -10,7 +10,7 @@ import { contextSrv } from 'app/core/services/context_srv'; import { SaveLibraryVizPanelModal } from '../panel-edit/SaveLibraryVizPanelModal'; import { DashboardScene } from '../scene/DashboardScene'; -import { getLibraryPanelBehavior, isLibraryPanel } from '../utils/utils'; +import { getLibraryPanelBehavior, hasActualSaveChanges, isLibraryPanel } from '../utils/utils'; interface DashboardPromptProps { dashboard: DashboardScene; @@ -183,5 +183,5 @@ export function ignoreChanges(scene: DashboardScene | null) { return true; } - return !canSave || fromScript || fromFile; + return !canSave || fromScript || fromFile || (scene.state.isEditing && !hasActualSaveChanges(scene)); } diff --git a/public/app/features/dashboard-scene/scene/DashboardScene.tsx b/public/app/features/dashboard-scene/scene/DashboardScene.tsx index 2a6d6abece9..371c2d51cd0 100644 --- a/public/app/features/dashboard-scene/scene/DashboardScene.tsx +++ b/public/app/features/dashboard-scene/scene/DashboardScene.tsx @@ -65,6 +65,7 @@ import { getDefaultVizPanel, getLayoutManagerFor, getPanelIdForVizPanel, + hasActualSaveChanges, } from '../utils/utils'; import { SchemaV2EditorDrawer } from '../v2schema/SchemaV2EditorDrawer'; @@ -322,7 +323,7 @@ export class DashboardScene extends SceneObjectBase impleme return; } - if (!this.state.isDirty || skipConfirm) { + if (!this.state.isDirty || skipConfirm || !hasActualSaveChanges(this)) { this.exitEditModeConfirmed(restoreInitialState || this.state.isDirty); this.state.scopesBridge?.setReadOnly(false); return; diff --git a/public/app/features/dashboard-scene/utils/utils.ts b/public/app/features/dashboard-scene/utils/utils.ts index e4e302dd652..89add9b02c4 100644 --- a/public/app/features/dashboard-scene/utils/utils.ts +++ b/public/app/features/dashboard-scene/utils/utils.ts @@ -468,3 +468,11 @@ export function useInterpolatedTitle