update: hide claimed wishlists when no wishlists are claimed

This commit is contained in:
2025-11-26 00:50:05 +01:00
parent 911f9c4936
commit a6724a0f22
4 changed files with 41 additions and 1 deletions

View File

@@ -119,6 +119,29 @@ export const actions: Actions = {
eq(savedWishlists.userId, session.user.id)
));
return { success: true };
},
deleteWishlist: async ({ request, locals }) => {
const session = await locals.auth();
if (!session?.user?.id) {
throw redirect(303, '/signin');
}
const formData = await request.formData();
const wishlistId = formData.get('wishlistId') as string;
if (!wishlistId) {
return { success: false, error: 'Wishlist ID is required' };
}
// Verify the user owns this wishlist
await db.delete(wishlists)
.where(and(
eq(wishlists.id, wishlistId),
eq(wishlists.userId, session.user.id)
));
return { success: true };
}
};

View File

@@ -216,6 +216,19 @@
>
{t.dashboard.copyLink}
</Button>
{#if myWishlistsUnlocked}
<!-- Add delete button for owned wishlists when unlocked -->
<form method="POST" action="?/deleteWishlist" use:enhance={() => {
return async ({ update }) => {
await update({ reset: false });
};
}}>
<input type="hidden" name="wishlistId" value={wishlist.id} />
<Button type="submit" size="sm" variant="destructive">
{t.dashboard.delete}
</Button>
</form>
{/if}
</div>
</WishlistCard>
{/snippet}
@@ -287,7 +300,7 @@
}}>
<input type="hidden" name="savedWishlistId" value={wishlist.savedId} />
<Button type="submit" size="sm" variant="destructive">
{t.dashboard.unsave}
{t.dashboard.unclaim}
</Button>
</form>
{/if}