mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-04-23 03:00:31 -04:00
fix(ui): tab disposables not being added correctly
This commit is contained in:
@@ -87,11 +87,18 @@ export class NavigationApi {
|
||||
*/
|
||||
_disposablesForTab: Map<TabName, Set<() => void>> = new Map();
|
||||
|
||||
/**
|
||||
* Convenience method to add a dispose function for a specific tab.
|
||||
*/
|
||||
/**
|
||||
* Convenience method to add a dispose function for a specific tab.
|
||||
*/
|
||||
_addDisposeForTab = (tab: TabName, disposeFn: () => void): void => {
|
||||
const disposables = this._disposablesForTab.get(tab) ?? new Set();
|
||||
let disposables = this._disposablesForTab.get(tab);
|
||||
if (!disposables) {
|
||||
disposables = new Set<() => void>();
|
||||
this._disposablesForTab.set(tab, disposables);
|
||||
}
|
||||
disposables.add(disposeFn);
|
||||
};
|
||||
|
||||
@@ -662,7 +669,13 @@ export class NavigationApi {
|
||||
// Clear previous panel tracking for this tab
|
||||
this._prevActiveDockviewPanel.delete(tab);
|
||||
this._currentActiveDockviewPanel.delete(tab);
|
||||
this._disposablesForTab.get(tab)?.forEach((disposeFn) => disposeFn());
|
||||
this._disposablesForTab.get(tab)?.forEach((disposeFn) => {
|
||||
try {
|
||||
disposeFn();
|
||||
} catch (error) {
|
||||
log.error({ error: parseify(error) }, `Error disposing resource for tab ${tab}`);
|
||||
}
|
||||
});
|
||||
this._disposablesForTab.delete(tab);
|
||||
|
||||
log.trace(`Unregistered all panels for tab ${tab}`);
|
||||
|
||||
Reference in New Issue
Block a user