From c1b52b66ff4b25a2c8ceb11a01d47846731fe282 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Mon, 5 May 2025 10:11:02 -0700 Subject: [PATCH] Use lib version of date functions --- README.md | 2 +- src/app/commands.ts | 28 +---- src/app/components/CalendarEventDate.svelte | 3 +- src/app/components/CalendarEventHeader.svelte | 8 +- src/app/components/ChannelMessage.svelte | 11 +- src/app/components/Chat.svelte | 107 +++++++++--------- src/app/components/ChatCompose.svelte | 58 ++++++++++ src/app/components/ChatComposeParent.svelte | 35 ++++++ src/app/components/ChatMessage.svelte | 12 +- .../components/ChatMessageEmojiButton.svelte | 3 +- .../components/ChatMessageMenuMobile.svelte | 3 +- src/app/components/EventActivity.svelte | 4 +- src/app/components/NoteCard.svelte | 3 +- src/app/components/PeopleItem.svelte | 3 +- src/app/components/ThreadItem.svelte | 3 +- src/app/editor/index.ts | 22 ++-- src/app/state.ts | 2 +- src/lib/components/DateTimeInput.svelte | 2 +- src/routes/+layout.svelte | 55 +++++---- src/routes/spaces/[relay]/[room]/+page.svelte | 4 +- .../spaces/[relay]/calendar/+page.svelte | 3 +- 21 files changed, 221 insertions(+), 150 deletions(-) create mode 100644 src/app/components/ChatCompose.svelte create mode 100644 src/app/components/ChatComposeParent.svelte diff --git a/README.md b/README.md index b4356ebe..c74e8fa5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A discord-like nostr client based on the idea of "relays as groups". -If you would like to be interoperable with Flotilla, please check out this draft NIP: https://github.com/coracle-social/nips/blob/relay-chat/xx.md +If you would like to be interoperable with Flotilla, please check out this guide: https://habla.news/u/hodlbod@coracle.social/1741286140797 # Deploy diff --git a/src/app/commands.ts b/src/app/commands.ts index 3d511f7f..37e0a1af 100644 --- a/src/app/commands.ts +++ b/src/app/commands.ts @@ -2,7 +2,7 @@ import * as nip19 from "nostr-tools/nip19" import {get} from "svelte/store" import {randomId, ifLet, poll, uniq, equals} from "@welshman/lib" import type {Feed} from "@welshman/feeds" -import type {TrustedEvent, EventContent, EventTemplate} from "@welshman/util" +import type {TrustedEvent, EventContent} from "@welshman/util" import { DELETE, REPORT, @@ -34,14 +34,12 @@ import { RelayMode, } from "@welshman/util" import {Pool, PublishStatus, AuthStatus, SocketStatus} from "@welshman/net" -import {Nip59, stamp} from "@welshman/signer" import {Router} from "@welshman/router" import { pubkey, signer, repository, publishThunk, - MergedThunk, profilesByPubkey, relaySelectionsByPubkey, tagEvent, @@ -336,30 +334,6 @@ export const attemptRelayAccess = async (url: string, claim = "") => { // Actions -export const sendWrapped = async ({ - template, - pubkeys, - delay, -}: { - template: EventTemplate - pubkeys: string[] - delay?: number -}) => { - const nip59 = Nip59.fromSigner(signer.get()!) - - return new MergedThunk( - await Promise.all( - uniq(pubkeys).map(async recipient => - publishThunk({ - event: await nip59.wrap(recipient, stamp(template)), - relays: Router.get().PubkeyInbox(recipient).getUrls(), - delay, - }), - ), - ), - ) -} - export const makeDelete = ({event}: {event: TrustedEvent}) => { const tags = [["k", String(event.kind)], ...tagEvent(event)] const groupTag = getTag("h", event.tags) diff --git a/src/app/components/CalendarEventDate.svelte b/src/app/components/CalendarEventDate.svelte index 5f3f3839..f72f6ada 100644 --- a/src/app/components/CalendarEventDate.svelte +++ b/src/app/components/CalendarEventDate.svelte @@ -1,7 +1,6 @@ -{#if others.length > 0} - - {#snippet title()} -
- {#if others.length === 1} - {@const pubkey = others[0]} - {@const onClick = () => pushModal(ProfileDetail, {pubkey})} - - {:else} -
- -

- - and - {#if others.length === 2} - - {:else} - {others.length - 1} - {others.length > 2 ? "others" : "other"} - {/if} -

-
- {#if others.length > 2} - - {/if} + + {#snippet title()} +
+ {#if others.length === 0} +
+ + +
+ {:else if others.length === 1} + {@const pubkey = others[0]} + {@const onClick = () => pushModal(ProfileDetail, {pubkey})} + + {:else} +
+ +

+ + and + {#if others.length === 2} + + {:else} + {others.length - 1} + {others.length > 2 ? "others" : "other"} + {/if} +

+
+ {#if others.length > 2} + {/if} -
- {/snippet} - {#snippet action()} -
- {#if remove($pubkey, missingInboxes).length > 0} - {@const count = remove($pubkey, missingInboxes).length} - {@const label = count > 1 ? "inboxes are" : "inbox is"} -
- - {count} -
- {/if} -
- {/snippet} -
-{/if} + {/if} +
+ {/snippet} + {#snippet action()} +
+ {#if remove($pubkey, missingInboxes).length > 0} + {@const count = remove($pubkey, missingInboxes).length} + {@const label = count > 1 ? "inboxes are" : "inbox is"} +
+ + {count} +
+ {/if} +
+ {/snippet} +
diff --git a/src/app/components/ChatCompose.svelte b/src/app/components/ChatCompose.svelte new file mode 100644 index 00000000..ed8f1799 --- /dev/null +++ b/src/app/components/ChatCompose.svelte @@ -0,0 +1,58 @@ + + +
+
+ +
+ +
diff --git a/src/app/components/ChatComposeParent.svelte b/src/app/components/ChatComposeParent.svelte new file mode 100644 index 00000000..13ea6abf --- /dev/null +++ b/src/app/components/ChatComposeParent.svelte @@ -0,0 +1,35 @@ + + +
+

{verb} @{displayProfileByPubkey(event.pubkey)}

+ {#key event.id} + + {/key} + +
diff --git a/src/app/components/ChatMessage.svelte b/src/app/components/ChatMessage.svelte index d9549850..2a0af118 100644 --- a/src/app/components/ChatMessage.svelte +++ b/src/app/components/ChatMessage.svelte @@ -1,14 +1,8 @@