feat: performance improvements to profile picture plugin

This commit is contained in:
SethBurkart123
2025-06-04 16:14:46 +10:00
parent 4b67736da2
commit c218f184c0
2 changed files with 6 additions and 3 deletions
@@ -43,6 +43,7 @@
const newBlobUrl = URL.createObjectURL(file) const newBlobUrl = URL.createObjectURL(file)
value = newBlobUrl value = newBlobUrl
blobUrl = newBlobUrl blobUrl = newBlobUrl
window.dispatchEvent(new Event('profile-picture-updated'))
} }
function onFileChange() { function onFileChange() {
@@ -62,6 +63,7 @@
} }
value = undefined value = undefined
await store.removeItem('profile-picture') await store.removeItem('profile-picture')
window.dispatchEvent(new Event('profile-picture-updated'))
} }
</script> </script>
+4 -3
View File
@@ -69,11 +69,12 @@ const profilePicturePlugin: Plugin<typeof settings> = {
// Initial load // Initial load
await updateImageFromStore(); await updateImageFromStore();
// Listen for storage changes (in case user updates from settings) // Listen for profile picture updates
const interval = setInterval(updateImageFromStore, 1000); const handler = () => { updateImageFromStore(); };
window.addEventListener('profile-picture-updated', handler);
return () => { return () => {
clearInterval(interval); window.removeEventListener('profile-picture-updated', handler);
if (img) img.remove(); if (img) img.remove();
if (svg) svg.style.display = ""; if (svg) svg.style.display = "";
if (currentBlobUrl) URL.revokeObjectURL(currentBlobUrl); if (currentBlobUrl) URL.revokeObjectURL(currentBlobUrl);