From 9f6bb096bca9914a91bb7ea9cc16c149cf0ef031 Mon Sep 17 00:00:00 2001 From: zeudev Date: Sun, 2 Nov 2025 04:38:13 -0800 Subject: [PATCH] rename to //bookmarks, created TagPill, update styles --- bun.lockb | Bin 106172 -> 105357 bytes package.json | 1 - src/app.css | 4 ++ src/lib/components/BookmarkCard.svelte | 26 ++----- src/lib/components/TagPill.svelte | 39 +++++++++++ src/lib/server/api.ts | 1 - src/routes/+layout.svelte | 45 +++++++------ src/routes/+page.svelte | 66 +++++++++++------- src/routes/[handle]/bookmarks/+page.svelte | 75 +++++++++++++++++++++ src/routes/[handle]/home/+page.svelte | 67 ------------------ 10 files changed, 188 insertions(+), 136 deletions(-) create mode 100644 src/lib/components/TagPill.svelte create mode 100644 src/routes/[handle]/bookmarks/+page.svelte delete mode 100644 src/routes/[handle]/home/+page.svelte diff --git a/bun.lockb b/bun.lockb index 7ffaf89088491f1dca6bdc50e027201962d5232a..d8218b9de233f39bda3caf7d2e7d37afbba3fb55 100755 GIT binary patch delta 18411 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 HO3DEMyG7PE delta 18953 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 diff --git a/package.json b/package.json index 017a450..4318080 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ "@atproto/oauth-client-node": "^0.3.8", "@oslojs/encoding": "^1.1.0", "@tailwindcss/vite": "^4.1.13", - "@tanstack/svelte-query": "^5.90.2", "drizzle-orm": "^0.44.5", "postgres": "^3.4.7", "valibot": "^1.1.0" diff --git a/src/app.css b/src/app.css index 2b520a2..7a8d68f 100644 --- a/src/app.css +++ b/src/app.css @@ -14,3 +14,7 @@ --font-neco: "Neco"; --font-comico: "Comico"; } + +@utility border-groove { + border-style: groove; +} diff --git a/src/lib/components/BookmarkCard.svelte b/src/lib/components/BookmarkCard.svelte index c9a0c98..45c4ee1 100644 --- a/src/lib/components/BookmarkCard.svelte +++ b/src/lib/components/BookmarkCard.svelte @@ -1,37 +1,23 @@

- {bookmark.subject} + {bookmark.subject} {#if bookmark.tags && bookmark.tags.length > 0} -
+
{#each bookmark.tags as tag} -
- {#if isOwner} - - {/if} - -
+ {/each}
{:else} diff --git a/src/lib/components/TagPill.svelte b/src/lib/components/TagPill.svelte new file mode 100644 index 0000000..6398657 --- /dev/null +++ b/src/lib/components/TagPill.svelte @@ -0,0 +1,39 @@ + + +
+ {#if showDeleteButton && variant !== "menu"} + + {/if} + + {#if showDeleteButton} + + {/if} +
diff --git a/src/lib/server/api.ts b/src/lib/server/api.ts index 7dc6acd..5861cd5 100644 --- a/src/lib/server/api.ts +++ b/src/lib/server/api.ts @@ -1,4 +1,3 @@ -import { dev } from "$app/environment"; import { SLICES_NETWORK_ACCESS_TOKEN } from "$env/static/private"; import type { LexiconCommunityBookmark, SliceItem, SliceList } from "$lib/utils"; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 6807bff..84232db 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,36 +1,39 @@
-
- +
+ potatonet.app -
+
+ {#if user} - ๐Ÿก
{:else} -
+ -
@@ -39,15 +42,15 @@ import '../app.css';
{#key page.url.pathname} -
- - {@render children()} - - {#snippet pending()} -

Page loading...

- {/snippet} -
-
+
+ + {@render children()} + + {#snippet pending()} +

Loading...

+ {/snippet} +
+
{/key}
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index e9c5611..52272d5 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,10 +1,12 @@ -

explore

+
+

Explore

+

recent 50

+
+ + + + + + + {#if data.user} + + {/if} + + +
{#if userBookmarksQuery.loading}

Loading...

{:else if userBookmarksQuery.error}

Error

-{:else} - {@const { cursor: returnedCursor, bookmarks } = userBookmarksQuery.current || { cursor: "", bookmarks: []}} - -
- -
- - - - -
-
-
-
- +{:else if queryData}
- {#each bookmarks as bookmark} + {#each queryData.bookmarks as bookmark} {#if bookmark.subject.includes(query) && (bookmark.tags?.some(t => filterTags.length > 0 ? filterTags.includes(t) : true))} - + {/if} {/each}
diff --git a/src/routes/[handle]/bookmarks/+page.svelte b/src/routes/[handle]/bookmarks/+page.svelte new file mode 100644 index 0000000..3725554 --- /dev/null +++ b/src/routes/[handle]/bookmarks/+page.svelte @@ -0,0 +1,75 @@ + + +

Bookmarks by @{handle}

+ + + + + + + {#if isOwner} + + {/if} + + +
+ +{#if userBookmarksQuery.loading} +

Loading...

+{:else if userBookmarksQuery.error} +

Error

+{:else} + {@const { cursor: returnedCursor, bookmarks } = userBookmarksQuery.current || { cursor: "", bookmarks: []}} +
+ {#each bookmarks as bookmark} + {#if bookmark.subject.includes(query) && (bookmark.tags?.every(t => filterTags.length > 0 ? filterTags.includes(t) : true))} + + {/if} + {/each} +
+{/if} diff --git a/src/routes/[handle]/home/+page.svelte b/src/routes/[handle]/home/+page.svelte deleted file mode 100644 index 6cc59a9..0000000 --- a/src/routes/[handle]/home/+page.svelte +++ /dev/null @@ -1,67 +0,0 @@ - - -

Bookmarks by @{handle}

- -{#if userBookmarksQuery.loading} -

Loading...

-{:else if userBookmarksQuery.error} -

Error

-{:else} - {@const { cursor: returnedCursor, bookmarks } = userBookmarksQuery.current || { cursor: "", bookmarks: []}} - -
- - - - -
- - {#if isOwner} - - {/if} -
-
- -
- {#each bookmarks as bookmark} - {#if bookmark.subject.includes(query) && (bookmark.tags?.some(t => filterTags.length > 0 ? filterTags.includes(t) : true))} - - {/if} - {/each} -
-{/if} -- 2.51.2