diff --git a/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx b/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx index 7c9e280fa..6fd62671c 100644 --- a/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx +++ b/web/pgadmin/preferences/static/js/components/PreferencesComponent.jsx @@ -555,11 +555,12 @@ export default function PreferencesComponent({ ...props }) { gettext('Object explorer refresh required'), gettext('An object explorer refresh is required. Do you wish to refresh it now?'), function () { - pgAdmin.Browser.tree.destroy({ - success: function () { + pgAdmin.Browser.tree.destroy().then( + () => { + pgAdmin.Browser.Events.trigger('pgadmin-browser:tree:destroyed', undefined, undefined); return true; - }, - }); + } + ); }, function () { return true; diff --git a/web/pgadmin/static/js/helpers/withStandardTabInfo.jsx b/web/pgadmin/static/js/helpers/withStandardTabInfo.jsx index 07cd1f1f1..e713c76bc 100644 --- a/web/pgadmin/static/js/helpers/withStandardTabInfo.jsx +++ b/web/pgadmin/static/js/helpers/withStandardTabInfo.jsx @@ -42,6 +42,7 @@ export default function withStandardTabInfo(Component, tabId) { setNodeInfo([true, item, data]); }; + let destroyTree = pgAdmin.Browser.Events.on('pgadmin-browser:tree:destroyed', onUpdate); let deregisterTree = pgAdmin.Browser.Events.on('pgadmin-browser:node:selected', onUpdate); let deregisterTreeUpdate = pgAdmin.Browser.Events.on('pgadmin-browser:tree:updated', onUpdate); let deregisterDbConnected = pgAdmin.Browser.Events.on('pgadmin:database:connected', onUpdate); @@ -54,6 +55,7 @@ export default function withStandardTabInfo(Component, tabId) { return ()=>{ onTabActive?.cancel(); + destroyTree(); deregisterTree(); deregisterTreeUpdate(); deregisterDbConnected(); diff --git a/web/pgadmin/static/js/tree/tree.js b/web/pgadmin/static/js/tree/tree.js index eb940639b..fc6653899 100644 --- a/web/pgadmin/static/js/tree/tree.js +++ b/web/pgadmin/static/js/tree/tree.js @@ -120,7 +120,7 @@ export class Tree { this.rootNode.children = []; if (model.root) { model.root.isExpanded = false; - await model.root.hardReloadChildren(); + return Promise.resolve(await model.root.hardReloadChildren()); } }