From 306a0f0f3db0e891f3df37915ce5f6b7ce5425b7 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Wed, 23 Oct 2024 16:16:28 -0700 Subject: [PATCH] Add menu to threads --- src/app.css | 2 +- .../ChannelMessageEmojiButton.svelte | 41 +-------- src/app/components/ChannelThread.svelte | 3 +- .../components/ChatMessageEmojiButton.svelte | 44 +--------- src/app/components/Profile.svelte | 3 +- src/app/components/ThreadActions.svelte | 53 ++++++++++++ src/app/components/ThreadItem.svelte | 8 +- src/app/components/ThreadMenu.svelte | 51 +++++++++++ src/app/components/ThreadReply.svelte | 84 ++++++++----------- src/app/routes.ts | 3 +- src/lib/components/EmojiButton.svelte | 41 +++++++++ src/routes/discover/+layout.svelte | 1 + src/routes/people/+page.svelte | 49 ----------- .../spaces/[relay]/threads/[id]/+page.svelte | 60 ++++++------- 14 files changed, 227 insertions(+), 216 deletions(-) create mode 100644 src/app/components/ThreadActions.svelte create mode 100644 src/app/components/ThreadMenu.svelte create mode 100644 src/lib/components/EmojiButton.svelte create mode 100644 src/routes/discover/+layout.svelte diff --git a/src/app.css b/src/app.css index 35e154b1..33096997 100644 --- a/src/app.css +++ b/src/app.css @@ -181,7 +181,7 @@ } .note-editor .tiptap[contenteditable="true"] { - @apply input input-bordered h-auto min-h-32 p-[.65rem] pb-6 rounded-box; + @apply input input-bordered h-auto min-h-32 rounded-box p-[.65rem] pb-6; } .tiptap pre code { diff --git a/src/app/components/ChannelMessageEmojiButton.svelte b/src/app/components/ChannelMessageEmojiButton.svelte index 14ff4489..f4a1a2be 100644 --- a/src/app/components/ChannelMessageEmojiButton.svelte +++ b/src/app/components/ChannelMessageEmojiButton.svelte @@ -1,53 +1,18 @@ - - -
- - -
+ diff --git a/src/app/components/ChannelThread.svelte b/src/app/components/ChannelThread.svelte index 66fddfcc..4d56c2e2 100644 --- a/src/app/components/ChannelThread.svelte +++ b/src/app/components/ChannelThread.svelte @@ -1,9 +1,8 @@ - - -
- - -
+ diff --git a/src/app/components/Profile.svelte b/src/app/components/Profile.svelte index 6020a2de..3403d80d 100644 --- a/src/app/components/Profile.svelte +++ b/src/app/components/Profile.svelte @@ -24,7 +24,8 @@ const onClick = () => pushDrawer(ProfileDetail, {pubkey}) - $: following = pubkey === $session!.pubkey || getPubkeyTagValues(getListTags($userFollows)).includes(pubkey) + $: following = + pubkey === $session!.pubkey || getPubkeyTagValues(getListTags($userFollows)).includes(pubkey)
diff --git a/src/app/components/ThreadActions.svelte b/src/app/components/ThreadActions.svelte new file mode 100644 index 00000000..17184d9f --- /dev/null +++ b/src/app/components/ThreadActions.svelte @@ -0,0 +1,53 @@ + + +
+
+ +
+
+ + + + +
+
diff --git a/src/app/components/ThreadItem.svelte b/src/app/components/ThreadItem.svelte index aed68568..49198e82 100644 --- a/src/app/components/ThreadItem.svelte +++ b/src/app/components/ThreadItem.svelte @@ -1,15 +1,13 @@ + + diff --git a/src/app/components/ThreadReply.svelte b/src/app/components/ThreadReply.svelte index 32ee7f8f..2ef06ee5 100644 --- a/src/app/components/ThreadReply.svelte +++ b/src/app/components/ThreadReply.svelte @@ -3,44 +3,33 @@ import type {Readable} from "svelte/store" import {writable} from "svelte/store" import {createEditor, type Editor, EditorContent} from "svelte-tiptap" - import {createEvent} from "@welshman/util" - import {publishThunk} from "@welshman/app" - import {fly} from '@lib/transition' + import {fly, slideAndFade} from "@lib/transition" import Icon from "@lib/components/Icon.svelte" import Button from "@lib/components/Button.svelte" - import ModalHeader from "@lib/components/ModalHeader.svelte" import ModalFooter from "@lib/components/ModalFooter.svelte" - import {REPLY} from "@app/state" import {getPubkeyHints, publishReply} from "@app/commands" import {getEditorOptions, addFile, uploadFiles, getEditorTags} from "@lib/editor" export let url export let event + export let onClose + export let onSubmit const startSubmit = () => uploadFiles($editor) const loading = writable(false) const submit = () => { - const thunk = publishReply({ - event, - content: $editor.getText(), - tags: getEditorTags($editor), - relays: [url], - }) - - hide() + onSubmit( + publishReply({ + event, + content: $editor.getText(), + tags: getEditorTags($editor), + relays: [url], + }), + ) } - const show = () => { - visible = true - } - - const hide = () => { - visible = false - } - - let visible = false let editor: Readable onMount(() => { @@ -48,35 +37,28 @@ }) -{#if visible} -
-
-
- -
- + +
+
+
- - - - - -{:else} -
-
-{/if} + + + + + diff --git a/src/app/routes.ts b/src/app/routes.ts index eb0c2f28..0536032c 100644 --- a/src/app/routes.ts +++ b/src/app/routes.ts @@ -13,7 +13,8 @@ export const makeSpacePath = (url: string, extra = "") => { export const makeChatPath = (pubkeys: string[]) => `/chat/${makeChatId(pubkeys)}` -export const makeThreadPath = (url: string, eventId: string) => `/spaces/${encodeRelay(url)}/threads/${eventId}` +export const makeThreadPath = (url: string, eventId: string) => + `/spaces/${encodeRelay(url)}/threads/${eventId}` export const getPrimaryNavItem = ($page: Page) => $page.route?.id?.split("/")[1] diff --git a/src/lib/components/EmojiButton.svelte b/src/lib/components/EmojiButton.svelte new file mode 100644 index 00000000..abdf3d7c --- /dev/null +++ b/src/lib/components/EmojiButton.svelte @@ -0,0 +1,41 @@ + + + + + + + diff --git a/src/routes/discover/+layout.svelte b/src/routes/discover/+layout.svelte new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/src/routes/discover/+layout.svelte @@ -0,0 +1 @@ + diff --git a/src/routes/people/+page.svelte b/src/routes/people/+page.svelte index 4d7a41bb..8b137891 100644 --- a/src/routes/people/+page.svelte +++ b/src/routes/people/+page.svelte @@ -1,50 +1 @@ - - - - - -
- {#each pubkeys.slice(0, limit) as pubkey (pubkey)} - - {/each} -
-
-
diff --git a/src/routes/spaces/[relay]/threads/[id]/+page.svelte b/src/routes/spaces/[relay]/threads/[id]/+page.svelte index cf601618..b312716a 100644 --- a/src/routes/spaces/[relay]/threads/[id]/+page.svelte +++ b/src/routes/spaces/[relay]/threads/[id]/+page.svelte @@ -1,23 +1,16 @@ -
+
+
+ {#if !showReply} +
+ +
+ {/if} {#each sortBy(e => -e.created_at, $replies) as reply (reply.id)} - +
-
+
{/each} - +
-
+
-
- +{#if showReply} + +{/if}