mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-08-28 17:21:05 +00:00
fix: prevent extension freezes and stale builds
This commit is contained in:
@@ -858,26 +858,13 @@ const messageFoldersPlugin = {
|
||||
if (!messageList || messageList === observedMessageList) return;
|
||||
messageListObserver?.disconnect();
|
||||
observedMessageList = messageList;
|
||||
messageListObserver = new MutationObserver((mutations) => {
|
||||
const messageRowsChanged = mutations.some((mutation) =>
|
||||
mutation.type === "childList"
|
||||
? mutation.target === messageList
|
||||
: mutation.target instanceof Element &&
|
||||
mutation.target.parentElement === messageList &&
|
||||
mutation.target.matches("li[data-message]"),
|
||||
);
|
||||
if (!messageRowsChanged) return;
|
||||
messageListObserver = new MutationObserver(() => {
|
||||
applyBadges();
|
||||
applyFolderFilter();
|
||||
attachDragListeners();
|
||||
attachContextMenuListeners();
|
||||
});
|
||||
messageListObserver.observe(messageList, {
|
||||
childList: true,
|
||||
subtree: true,
|
||||
attributes: true,
|
||||
attributeFilter: ["class", "data-message"],
|
||||
});
|
||||
messageListObserver.observe(messageList, { childList: true });
|
||||
};
|
||||
|
||||
const attachContextMenuListeners = () => {
|
||||
|
||||
@@ -56,6 +56,7 @@ function menuFingerprint(menu: HTMLElement): string {
|
||||
|
||||
function syncFromMenu(force = false) {
|
||||
if (!menuEl) return;
|
||||
getNativeMenuList(menuEl)?.setAttribute("aria-hidden", "true");
|
||||
const next = menuFingerprint(menuEl);
|
||||
if (!force && next === lastMenuFingerprint) return;
|
||||
lastMenuFingerprint = next;
|
||||
@@ -368,6 +369,7 @@ export function unmountCustomSidebar() {
|
||||
|
||||
document.getElementById(ROOT_ID)?.remove();
|
||||
if (menuEl) {
|
||||
getNativeMenuList(menuEl)?.removeAttribute("aria-hidden");
|
||||
menuEl.classList.remove(MENU_CLASS, "bsplus-sidebar-edit-mode");
|
||||
clearSidebarAppearance(menuEl);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user