diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index 2e83d061a..f0352af70 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -1008,25 +1008,27 @@ /> {#if $banners.length > 0} -
- {#each $banners as banner} - { - const bannerId = e.detail; +
+
+ {#each $banners.filter( (b) => (b.dismissible ? !JSON.parse(localStorage.getItem('dismissedBannerIds') ?? '[]').includes(b.id) : true) ) as banner} + { + const bannerId = e.detail; - localStorage.setItem( - 'dismissedBannerIds', - JSON.stringify( - [ - bannerId, - ...JSON.parse(localStorage.getItem('dismissedBannerIds') ?? '[]') - ].filter((id) => $banners.find((b) => b.id === id)) - ) - ); - }} - /> - {/each} + localStorage.setItem( + 'dismissedBannerIds', + JSON.stringify( + [ + bannerId, + ...JSON.parse(localStorage.getItem('dismissedBannerIds') ?? '[]') + ].filter((id) => $banners.find((b) => b.id === id)) + ) + ); + }} + /> + {/each} +
{/if} diff --git a/src/lib/components/common/Banner.svelte b/src/lib/components/common/Banner.svelte index ff5736b09..659950514 100644 --- a/src/lib/components/common/Banner.svelte +++ b/src/lib/components/common/Banner.svelte @@ -36,17 +36,17 @@ }); -{#if mounted} - {#if !dismissed} +{#if !dismissed} + {#if mounted}
{banner.type}
@@ -110,14 +110,13 @@
{/if} -
+
{#if banner.dismissible} × {/if}
diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index b93105d2d..2b32be614 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -85,12 +85,7 @@ documents.set(await getDocs(localStorage.token)); })(), (async () => { - let _banners = await getBanners(localStorage.token); - const dismissedBannerIds = JSON.parse(localStorage.getItem('dismissedBannerIds') ?? '[]'); - _banners = _banners.filter((banner) => - banner.dismissible ? !dismissedBannerIds.includes(banner.id) : true - ); - banners.set(_banners); + banners.set(await getBanners(localStorage.token)); })(), (async () => { tags.set(await getAllChatTags(localStorage.token));