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 @@