From a539de54a8d4eca83746231315a5ebc28669da8a Mon Sep 17 00:00:00 2001
From: Florian <45694132+flo-bit@users.noreply.github.com>
Date: Sun, 16 Aug 2026 04:43:43 +0200
Subject: [PATCH] lists
---
src/lib/components/AddToListMenu.svelte | 220 +++++++++++
src/lib/components/CreateListDialog.svelte | 145 ++++++++
src/lib/components/ItemPage.svelte | 7 +-
src/lib/components/ListCard.svelte | 6 +-
src/lib/components/ReviewDialog.svelte | 40 +-
src/lib/list-write.remote.ts | 402 +++++++++++++++++++++
src/lib/list.svelte.ts | 20 +
src/lib/lists.server.ts | 2 +-
src/lib/review-write.remote.ts | 205 ++++++++++-
src/routes/+layout.svelte | 2 +
src/routes/profile/[actor]/+page.svelte | 2 +-
11 files changed, 1028 insertions(+), 23 deletions(-)
create mode 100644 src/lib/components/AddToListMenu.svelte
create mode 100644 src/lib/components/CreateListDialog.svelte
create mode 100644 src/lib/list-write.remote.ts
create mode 100644 src/lib/list.svelte.ts
diff --git a/src/lib/components/AddToListMenu.svelte b/src/lib/components/AddToListMenu.svelte
new file mode 100644
index 0000000..09bbe98
--- /dev/null
+++ b/src/lib/components/AddToListMenu.svelte
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+ Add to list
+
+
+
+
+
+
+ add to list
+
+
+ {#if loading}
+
+
+
+
+ loading lists…
+
+ {:else if lists.length > 0}
+
+ {#each lists as list (list.uri)}
+
void toggleList(list, checked)}
+ closeOnSelect={false}
+ disabled={pendingUris.includes(list.uri)}
+ textValue={list.name}
+ class="flex min-h-9 items-center gap-3 rounded-lg px-2.5 py-2 text-sm outline-none select-none data-disabled:opacity-50 data-highlighted:bg-white/10"
+ >
+ {#snippet children({ checked })}
+ {list.name}
+
+ {#if pendingUris.includes(list.uri)}
+
+
+
+ {:else if checked}
+
+
+
+ {/if}
+
+ {/snippet}
+
+ {/each}
+
+ {:else if !listError}
+ No lists yet.
+ {/if}
+
+
+ {#if listError}
+ {listError}
+ {/if}
+
+
+
+
+
+
+ new list
+
+
+
+
diff --git a/src/lib/components/CreateListDialog.svelte b/src/lib/components/CreateListDialog.svelte
new file mode 100644
index 0000000..dd0f499
--- /dev/null
+++ b/src/lib/components/CreateListDialog.svelte
@@ -0,0 +1,145 @@
+
+
+ !open && createListDialog.hide()}
+>
+
+
+
+ new list
+
+ Create a list and add this movie or TV show to it.
+
+
+
+
+ Close new list
+
+
+ {#if createListDialog.item}
+
+
+ {#if createListDialog.item.poster}
+
+ {/if}
+
+
+
{createListDialog.item.title}
+
+ {createListDialog.item.creativeWorkType === 'tv_show' ? 'TV series' : 'Movie'}
+
+
+
+
+
+ {/if}
+
+
+
diff --git a/src/lib/components/ItemPage.svelte b/src/lib/components/ItemPage.svelte
index bca9959..25ededa 100644
--- a/src/lib/components/ItemPage.svelte
+++ b/src/lib/components/ItemPage.svelte
@@ -1,6 +1,7 @@
@@ -18,3 +19,4 @@
+
\ No newline at end of file
diff --git a/src/routes/profile/[actor]/+page.svelte b/src/routes/profile/[actor]/+page.svelte
index d917139..684df1f 100644
--- a/src/routes/profile/[actor]/+page.svelte
+++ b/src/routes/profile/[actor]/+page.svelte
@@ -124,7 +124,7 @@
class={`text-sm text-white ${writtenReviews.length > 0 || ratings.length > 0 ? 'mt-10 border-t border-white/10 pt-6' : 'mt-6'}`}
>
Lists
-
+
{#each data.lists as list (list.uri)}
{/each}
--
2.51.2