[Dashboard] Allow Reporting after Discarding Unsaved Changes (#106026)

Allowed dashboard diffing to happen in view mode to  fix dashboard unsaved changes not updating after discard changes
This commit is contained in:
Devon Thomson 2021-07-20 15:40:55 -03:00 committed by GitHub
parent 2a54db715a
commit 300644f589
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -219,8 +219,14 @@ export const useDashboardAppState = ({
const unsavedChanges =
current.viewMode === ViewMode.EDIT ? diffDashboardState(lastSaved, current) : {};
let savedTimeChanged = false;
/**
* changes to the time filter should only be considered 'unsaved changes' when
* editing the dashboard
*/
if (current.viewMode === ViewMode.EDIT) {
const savedTimeChanged =
savedTimeChanged =
lastSaved.timeRestore &&
!areTimeRangesEqual(
{
@ -229,9 +235,9 @@ export const useDashboardAppState = ({
},
timefilter.getTime()
);
const hasUnsavedChanges = Object.keys(unsavedChanges).length > 0 || savedTimeChanged;
setDashboardAppState((s) => ({ ...s, hasUnsavedChanges }));
}
const hasUnsavedChanges = Object.keys(unsavedChanges).length > 0 || savedTimeChanged;
setDashboardAppState((s) => ({ ...s, hasUnsavedChanges }));
unsavedChanges.viewMode = current.viewMode; // always push view mode into session store.
dashboardSessionStorage.setState(savedDashboardId, unsavedChanges);