diff --git a/src/lib/components/BookmarksSection.svelte b/src/lib/components/BookmarksSection.svelte index 85a4f3a..2fb18a7 100644 --- a/src/lib/components/BookmarksSection.svelte +++ b/src/lib/components/BookmarksSection.svelte @@ -24,7 +24,8 @@ item !== null && typeof (item as PinnedBookmark).id === 'string' && typeof (item as PinnedBookmark).name === 'string' && - typeof (item as PinnedBookmark).url === 'string' + typeof (item as PinnedBookmark).url === 'string' && + isValidHttpUrl((item as PinnedBookmark).url) ); } @@ -34,8 +35,8 @@ const saved = localStorage.getItem('foyer-bookmarks'); if (saved) { const parsed = JSON.parse(saved); - if (Array.isArray(parsed) && parsed.every(isValidBookmark)) { - bookmarks = parsed; + if (Array.isArray(parsed)) { + bookmarks = parsed.filter(isValidBookmark); } } } catch {} @@ -150,10 +151,11 @@ @@ -185,6 +187,7 @@ type="button" onclick={() => (showAddModal = false)} class="text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-200 cursor-pointer" + aria-label="Close dialog" > ✕ diff --git a/src/lib/components/CategorySection.svelte b/src/lib/components/CategorySection.svelte index 4610b0f..4290ea0 100644 --- a/src/lib/components/CategorySection.svelte +++ b/src/lib/components/CategorySection.svelte @@ -1,6 +1,7 @@