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);