fix(react/settings): hook leak after closing tabs

This commit is contained in:
Elian Doran
2025-08-18 22:15:47 +03:00
parent 3837466cb3
commit 73ff41f2b2
5 changed files with 51 additions and 8 deletions

View File

@@ -68,9 +68,17 @@ export default function useTriliumEvent<T extends EventNames>(eventName: T, hand
return;
}
// Remove the event handler from the array.
const newEventHandlers = eventHandlers.filter(e => e !== handler);
registeredHandlers.get(parentWidget)?.set(eventName, newEventHandlers);
// Remove the event handler from the array.
const newEventHandlers = eventHandlers.filter(e => e !== handler);
if (newEventHandlers.length) {
registeredHandlers.get(parentWidget)?.set(eventName, newEventHandlers);
} else {
registeredHandlers.get(parentWidget)?.delete(eventName);
}
if (!registeredHandlers.get(parentWidget)?.size) {
registeredHandlers.delete(parentWidget);
}
};
}, [ eventName, parentWidget, handler ]);
}