From 1408f782f1a99b2751560333045c224c974b8e6d Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Thu, 20 Jun 2024 16:59:19 -0700 Subject: [PATCH] Toggle nip44 messages based on 10050 signaling --- CHANGELOG.md | 1 + src/app/views/ChannelsDetail.svelte | 71 ++++------------------------- src/engine/commands.ts | 2 +- src/engine/requests/pubkeys.ts | 3 +- src/partials/Channel.svelte | 20 ++++---- 5 files changed, 24 insertions(+), 73 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79e217ab..5f41fb9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ # 0.4.8 - [x] Add support for kind 10050 relay lists +- [x] Toggle nip44 messages based on 10050 signaling # 0.4.7 diff --git a/src/app/views/ChannelsDetail.svelte b/src/app/views/ChannelsDetail.svelte index 376c034f..d895dfa2 100644 --- a/src/app/views/ChannelsDetail.svelte +++ b/src/app/views/ChannelsDetail.svelte @@ -5,9 +5,7 @@ import {DIRECT_MESSAGE} from "@welshman/util" import {formatTimestamp} from "src/util/misc" import Channel from "src/partials/Channel.svelte" - import Content from "src/partials/Content.svelte" import Popover from "src/partials/Popover.svelte" - import Modal from "src/partials/Modal.svelte" import Anchor from "src/partials/Anchor.svelte" import PersonCircles from "src/app/shared/PersonCircles.svelte" import PersonAbout from "src/app/shared/PersonAbout.svelte" @@ -23,7 +21,6 @@ markChannelRead, getChannelIdFromEvent, listenForMessages, - sortEventsDesc, ensureMessagePlaintext, } from "src/engine" @@ -46,35 +43,9 @@ return sendLegacyMessage(channelId, content) } - const [message] = sortEventsDesc($messages || []) - - if (!message || message?.kind === 4) { - confirmMessage = content - } else { - sendMessage(channelId, content) - } + sendMessage(channelId, content) } - const confirmNip04 = () => { - sendLegacyMessage(channelId, confirmMessage) - confirmMessage = null - } - - const confirmNip44 = () => { - sendMessage(channelId, confirmMessage) - confirmMessage = null - } - - const abortMessage = () => { - if (confirmMessage) { - ctrl.setMessage(confirmMessage) - } - - confirmMessage = null - } - - let confirmMessage, ctrl - onMount(() => { markChannelRead(channelId) @@ -88,7 +59,7 @@ document.title = `Direct Messages` - +
@@ -134,20 +105,22 @@ class:text-neutral-100={message.pubkey !== $session.pubkey}> {formatTimestamp(message.created_at)} {#if message.kind === 4} - - + +

This message was sent using nostr's legacy DMs, which have a number of shortcomings. Read more here.

{:else} - - + +

This message was sent using nostr's new group chat specification, which solves several - problems with legacy DMs. Read more here. + problems with legacy DMs. Read more here.

Note that these messages are not yet universally supported. Make sure the person @@ -159,29 +132,3 @@

- -{#if confirmMessage} - - -

- Auto-upgrade notice -

-

- This conversation has not yet been upgraded to use new-style DMs. -

-

- You should make sure @{displayProfileByPubkey(pubkeys[0])} is using a compatible nostr client, - or you can choose to send an old-style message instead. -

-

How would you like to send this message?

-
- Send using Legacy DMs - Send using NIP 44 -
-
-
-{/if} diff --git a/src/engine/commands.ts b/src/engine/commands.ts index 11de20aa..0462554a 100644 --- a/src/engine/commands.ts +++ b/src/engine/commands.ts @@ -927,7 +927,7 @@ export const sendMessage = async (channelId: string, content: string) => { publish({ event: rumor.wrap, - relays: hints.merge(recipients.map(hints.PublishMessage)).getUrls(), + relays: hints.PublishMessage(recipient).getUrls(), forcePlatform: false, }) } diff --git a/src/engine/requests/pubkeys.ts b/src/engine/requests/pubkeys.ts index 2f025a55..235c76c4 100644 --- a/src/engine/requests/pubkeys.ts +++ b/src/engine/requests/pubkeys.ts @@ -4,6 +4,7 @@ import type {TrustedEvent} from "@welshman/util" import { RELAYS, PROFILE, + INBOX_RELAYS, HANDLER_INFORMATION, NAMED_BOOKMARKS, COMMUNITIES, @@ -51,7 +52,7 @@ const getFiltersForKey = (key: string, authors: string[]) => { case "pubkey/feeds": return [{authors, kinds: [NAMED_BOOKMARKS, FEED]}] case "pubkey/relays": - return [{authors, kinds: [RELAYS]}] + return [{authors, kinds: [RELAYS, INBOX_RELAYS]}] case "pubkey/profile": return [{authors, kinds: [PROFILE, FOLLOWS, HANDLER_INFORMATION, COMMUNITIES]}] case "pubkey/user": diff --git a/src/partials/Channel.svelte b/src/partials/Channel.svelte index 54c98748..a52abf24 100644 --- a/src/partials/Channel.svelte +++ b/src/partials/Channel.svelte @@ -1,28 +1,26 @@