Fix onDestroy not called for Popup component

This commit is contained in:
hensm
2022-08-27 10:28:02 +01:00
parent 0753c701a0
commit 1032fb1572
2 changed files with 12 additions and 9 deletions

View File

@@ -1,5 +1,5 @@
<script lang="ts"> <script lang="ts">
import { afterUpdate, onMount, tick } from "svelte"; import { afterUpdate, onDestroy, onMount, tick } from "svelte";
import messaging, { Message, Port } from "../../messaging"; import messaging, { Message, Port } from "../../messaging";
import options, { Options } from "../../lib/options"; import options, { Options } from "../../lib/options";
@@ -131,15 +131,15 @@
window.addEventListener("contextmenu", onContextMenu); window.addEventListener("contextmenu", onContextMenu);
browser.menus.onClicked.addListener(onMenuClicked); browser.menus.onClicked.addListener(onMenuClicked);
browser.menus.onShown.addListener(onMenuShown); browser.menus.onShown.addListener(onMenuShown);
});
return () => { onDestroy(() => {
port?.disconnect(); port?.disconnect();
resizeObserver.disconnect(); resizeObserver.disconnect();
window.addEventListener("contextmenu", onContextMenu); window.removeEventListener("contextmenu", onContextMenu);
browser.menus.onClicked.removeListener(onMenuClicked); browser.menus.onClicked.removeListener(onMenuClicked);
browser.menus.onShown.removeListener(onMenuShown); browser.menus.onShown.removeListener(onMenuShown);
};
}); });
afterUpdate(async () => { afterUpdate(async () => {

View File

@@ -12,5 +12,8 @@ browser.runtime.getPlatformInfo().then(platformInfo => {
const target = document.getElementById("root"); const target = document.getElementById("root");
if (target) { if (target) {
new Popup({ target }); const popup = new Popup({ target });
window.addEventListener("unload", () => {
popup.$destroy();
});
} }