From c218f184c039245a775b74bb4de0bff8d415df11 Mon Sep 17 00:00:00 2001 From: SethBurkart123 Date: Wed, 4 Jun 2025 16:14:46 +1000 Subject: [PATCH] feat: performance improvements to profile picture plugin --- .../built-in/profilePicture/ProfilePictureSetting.svelte | 2 ++ src/plugins/built-in/profilePicture/index.ts | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/plugins/built-in/profilePicture/ProfilePictureSetting.svelte b/src/plugins/built-in/profilePicture/ProfilePictureSetting.svelte index 1da2b571..de99cb0c 100644 --- a/src/plugins/built-in/profilePicture/ProfilePictureSetting.svelte +++ b/src/plugins/built-in/profilePicture/ProfilePictureSetting.svelte @@ -43,6 +43,7 @@ const newBlobUrl = URL.createObjectURL(file) value = newBlobUrl blobUrl = newBlobUrl + window.dispatchEvent(new Event('profile-picture-updated')) } function onFileChange() { @@ -62,6 +63,7 @@ } value = undefined await store.removeItem('profile-picture') + window.dispatchEvent(new Event('profile-picture-updated')) } diff --git a/src/plugins/built-in/profilePicture/index.ts b/src/plugins/built-in/profilePicture/index.ts index 446dc21b..89f42cac 100644 --- a/src/plugins/built-in/profilePicture/index.ts +++ b/src/plugins/built-in/profilePicture/index.ts @@ -69,11 +69,12 @@ const profilePicturePlugin: Plugin = { // Initial load await updateImageFromStore(); - // Listen for storage changes (in case user updates from settings) - const interval = setInterval(updateImageFromStore, 1000); + // Listen for profile picture updates + const handler = () => { updateImageFromStore(); }; + window.addEventListener('profile-picture-updated', handler); return () => { - clearInterval(interval); + window.removeEventListener('profile-picture-updated', handler); if (img) img.remove(); if (svg) svg.style.display = ""; if (currentBlobUrl) URL.revokeObjectURL(currentBlobUrl);