From 15f56b231d6bbd0336079079bef614a191a566d8 Mon Sep 17 00:00:00 2001 From: tamaina <tamaina@hotmail.co.jp> Date: Wed, 17 May 2023 07:55:09 +0000 Subject: [PATCH] Revert "WIP" This reverts commit 05b729ef9189aea052ba411ac10f30a46cc668c8. --- .../src/components/MkImgWithBlurhash.vue | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/packages/frontend/src/components/MkImgWithBlurhash.vue b/packages/frontend/src/components/MkImgWithBlurhash.vue index e511212189..a0e7ee30bc 100644 --- a/packages/frontend/src/components/MkImgWithBlurhash.vue +++ b/packages/frontend/src/components/MkImgWithBlurhash.vue @@ -114,6 +114,20 @@ watch([() => props.width, () => props.height, root], () => { immediate: true, }); +workerPromise.then(worker => { + if (!worker) return; + + worker.postMessage({ + id: viewId, + hash: props.hash, + }); + + worker.addEventListener('message', event => { + if (event.data.id !== viewId) return; + drawImage(event.data.bitmap as ImageBitmap); + }); +}); + function drawImage(bitmap: CanvasImageSource) { // canvasがない(mountedされていない)場合はTmpに保存しておく if (!canvas.value) { @@ -151,19 +165,6 @@ async function draw() { } } -function workerOnMessage(event: MessageEvent) { - if (event.data.id !== viewId) return; - drawImage(event.data.bitmap as ImageBitmap); -} - -workerPromise.then(worker => { - if (worker) { - worker.addEventListener('message', workerOnMessage); - } - - draw(); -}); - watch(() => props.src, () => { waitForDecode(); }); @@ -180,11 +181,7 @@ onMounted(() => { }); onUnmounted(() => { - workerPromise.then(worker => { - if (worker) { - worker.removeEventListener('message', workerOnMessage); - } - }); + workerPromise.then(worker => worker?.postMessage!({ id: viewId, delete: true })); }); </script>