diff --git a/src/lib/components/dashboard/LocalWishlistsSection.svelte b/src/lib/components/dashboard/LocalWishlistsSection.svelte
new file mode 100644
index 0000000..1328a39
--- /dev/null
+++ b/src/lib/components/dashboard/LocalWishlistsSection.svelte
@@ -0,0 +1,93 @@
+
+
+{#if localWishlists.length > 0}
+
+ {#snippet actions(wishlist, unlocked)}
+
+
+
+
+ {#if unlocked}
+
+ {/if}
+
+ {/snippet}
+
+{/if}
diff --git a/src/lib/components/layout/DashboardHeader.svelte b/src/lib/components/layout/DashboardHeader.svelte
index afbf9b2..83b8943 100644
--- a/src/lib/components/layout/DashboardHeader.svelte
+++ b/src/lib/components/layout/DashboardHeader.svelte
@@ -8,16 +8,25 @@
let { userName, userEmail }: { userName?: string | null; userEmail?: string | null } = $props();
const t = $derived(languageStore.t);
+ const isAuthenticated = $derived(!!userName || !!userEmail);
{t.nav.dashboard}
-
{t.dashboard.welcomeBack}, {userName || userEmail}
+ {#if isAuthenticated}
+
{t.dashboard.welcomeBack}, {userName || userEmail}
+ {:else}
+
{t.dashboard.anonymousDashboard || "Your local wishlists"}
+ {/if}
-
+ {#if isAuthenticated}
+
+ {:else}
+
+ {/if}
diff --git a/src/lib/components/wishlist/ClaimWishlistSection.svelte b/src/lib/components/wishlist/ClaimWishlistSection.svelte
index 00f8746..4916b39 100644
--- a/src/lib/components/wishlist/ClaimWishlistSection.svelte
+++ b/src/lib/components/wishlist/ClaimWishlistSection.svelte
@@ -2,18 +2,24 @@
import { Button } from '$lib/components/ui/button';
import { enhance } from '$app/forms';
import { languageStore } from '$lib/stores/language.svelte';
+ import { isLocalWishlist } from '$lib/utils/localWishlists';
let {
isAuthenticated,
isOwner,
- hasClaimed
+ hasClaimed,
+ ownerToken
}: {
isAuthenticated: boolean;
isOwner: boolean;
hasClaimed: boolean;
+ ownerToken: string;
} = $props();
const t = $derived(languageStore.t);
+
+ // Check if this wishlist is in localStorage
+ const isLocal = $derived(isLocalWishlist(ownerToken));
{#if isAuthenticated}
@@ -33,7 +39,11 @@