[Dashboard] [TSVB] Fix TopN Drilldown (#118213) (#118392)

* Fixed race condition causing issues with TSVB drilldowns

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Devon Thomson 2021-11-11 14:48:14 -05:00 committed by GitHub
parent 570556b65a
commit 59b34d346c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -25,6 +25,8 @@ import { convertSavedPanelsToPanelMap } from './convert_dashboard_panels';
type SyncDashboardUrlStateProps = DashboardBuildContext & { savedDashboard: DashboardSavedObject };
let awaitingRemoval = false;
export const syncDashboardUrlState = ({
dispatchDashboardStateChange,
getLatestDashboardState,
@ -89,15 +91,19 @@ const loadDashboardUrlState = ({
: undefined;
// remove state from URL
kbnUrlStateStorage.kbnUrlControls.updateAsync((nextUrl) => {
if (nextUrl.includes(DASHBOARD_STATE_STORAGE_KEY)) {
return replaceUrlHashQuery(nextUrl, (query) => {
delete query[DASHBOARD_STATE_STORAGE_KEY];
return query;
});
}
return nextUrl;
}, true);
if (!awaitingRemoval) {
awaitingRemoval = true;
kbnUrlStateStorage.kbnUrlControls.updateAsync((nextUrl) => {
if (nextUrl.includes(DASHBOARD_STATE_STORAGE_KEY)) {
return replaceUrlHashQuery(nextUrl, (query) => {
delete query[DASHBOARD_STATE_STORAGE_KEY];
return query;
});
}
awaitingRemoval = false;
return nextUrl;
}, true);
}
return {
..._.omit(rawAppStateInUrl, ['panels', 'query']),