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;
|
if (!messageList || messageList === observedMessageList) return;
|
||||||
messageListObserver?.disconnect();
|
messageListObserver?.disconnect();
|
||||||
observedMessageList = messageList;
|
observedMessageList = messageList;
|
||||||
messageListObserver = new MutationObserver((mutations) => {
|
messageListObserver = new MutationObserver(() => {
|
||||||
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;
|
|
||||||
applyBadges();
|
applyBadges();
|
||||||
applyFolderFilter();
|
applyFolderFilter();
|
||||||
attachDragListeners();
|
attachDragListeners();
|
||||||
attachContextMenuListeners();
|
attachContextMenuListeners();
|
||||||
});
|
});
|
||||||
messageListObserver.observe(messageList, {
|
messageListObserver.observe(messageList, { childList: true });
|
||||||
childList: true,
|
|
||||||
subtree: true,
|
|
||||||
attributes: true,
|
|
||||||
attributeFilter: ["class", "data-message"],
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const attachContextMenuListeners = () => {
|
const attachContextMenuListeners = () => {
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ function menuFingerprint(menu: HTMLElement): string {
|
|||||||
|
|
||||||
function syncFromMenu(force = false) {
|
function syncFromMenu(force = false) {
|
||||||
if (!menuEl) return;
|
if (!menuEl) return;
|
||||||
|
getNativeMenuList(menuEl)?.setAttribute("aria-hidden", "true");
|
||||||
const next = menuFingerprint(menuEl);
|
const next = menuFingerprint(menuEl);
|
||||||
if (!force && next === lastMenuFingerprint) return;
|
if (!force && next === lastMenuFingerprint) return;
|
||||||
lastMenuFingerprint = next;
|
lastMenuFingerprint = next;
|
||||||
@@ -368,6 +369,7 @@ export function unmountCustomSidebar() {
|
|||||||
|
|
||||||
document.getElementById(ROOT_ID)?.remove();
|
document.getElementById(ROOT_ID)?.remove();
|
||||||
if (menuEl) {
|
if (menuEl) {
|
||||||
|
getNativeMenuList(menuEl)?.removeAttribute("aria-hidden");
|
||||||
menuEl.classList.remove(MENU_CLASS, "bsplus-sidebar-edit-mode");
|
menuEl.classList.remove(MENU_CLASS, "bsplus-sidebar-edit-mode");
|
||||||
clearSidebarAppearance(menuEl);
|
clearSidebarAppearance(menuEl);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -138,7 +138,7 @@ export default defineConfig(({ command, mode: viteMode }) => {
|
|||||||
},
|
},
|
||||||
build: {
|
build: {
|
||||||
outDir: resolve(__dirname, "dist", mode),
|
outDir: resolve(__dirname, "dist", mode),
|
||||||
emptyOutDir: false,
|
emptyOutDir: true,
|
||||||
minify: true,
|
minify: true,
|
||||||
//sourcemap: sourcemap,
|
//sourcemap: sourcemap,
|
||||||
chunkSizeWarningLimit: 4000,
|
chunkSizeWarningLimit: 4000,
|
||||||
|
|||||||
Reference in New Issue
Block a user