From 9f3bfd5ac0414b32eecdfffd2d3fa68fc3e4d129 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Thu, 12 Dec 2024 14:49:30 -0800 Subject: [PATCH] Move nip29 check --- src/app/commands.ts | 3 +-- src/app/components/RoomCreate.svelte | 3 ++- src/app/components/ThunkStatus.svelte | 4 ++-- src/app/state.ts | 5 ++++- src/routes/spaces/[relay]/[room]/+page.svelte | 6 +++--- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/app/commands.ts b/src/app/commands.ts index 5a13e7b..96a7ab9 100644 --- a/src/app/commands.ts +++ b/src/app/commands.ts @@ -54,7 +54,7 @@ import { clearStorage, dropSession, } from "@welshman/app" -import type {Relay, Thunk} from "@welshman/app" +import type {Thunk} from "@welshman/app" import { tagRoom, userMembership, @@ -209,7 +209,6 @@ export const broadcastUserData = async (relays: string[]) => { // NIP 29 stuff export const nip29 = { - isSupported: (relay?: Relay) => relay?.profile?.supported_nips?.map(String)?.includes("29"), createRoom: (url: string, room: string) => { const event = createEvent(GROUP_CREATE, {tags: [tagRoom(room, url)]}) diff --git a/src/app/components/RoomCreate.svelte b/src/app/components/RoomCreate.svelte index 77f28c2..c310679 100644 --- a/src/app/components/RoomCreate.svelte +++ b/src/app/components/RoomCreate.svelte @@ -9,6 +9,7 @@ import Icon from "@lib/components/Icon.svelte" import ModalHeader from "@lib/components/ModalHeader.svelte" import ModalFooter from "@lib/components/ModalFooter.svelte" + import {hasNip29} from "@app/state" import {addRoomMembership, nip29, getThunkError} from "@app/commands" import {makeSpacePath} from "@app/routes" import {pushToast} from "@app/toast" @@ -21,7 +22,7 @@ const back = () => history.back() const tryCreate = async () => { - if (nip29.isSupported($relay)) { + if (hasNip29($relay)) { const createMessage = await getThunkError(nip29.createRoom(url, room)) if (createMessage && !createMessage.match(/^duplicate:|already a member/)) { diff --git a/src/app/components/ThunkStatus.svelte b/src/app/components/ThunkStatus.svelte index 8926270..db7e504 100644 --- a/src/app/components/ThunkStatus.svelte +++ b/src/app/components/ThunkStatus.svelte @@ -32,9 +32,9 @@ // Delay updating isPending so users can see that the message is sent $: { - isPending = isPending || ps.some(s => s.status == Pending) + isPending = isPending || ps.some(s => s.status === Pending) - if (!ps.some(s => s.status == Pending)) { + if (!ps.some(s => s.status === Pending)) { setTimeout(() => { isPending = false }, 2000) diff --git a/src/app/state.ts b/src/app/state.ts index 7390e5a..1c397bf 100644 --- a/src/app/state.ts +++ b/src/app/state.ts @@ -459,10 +459,13 @@ export const messages = derived( $events => $events.map(adaptLegacyMessage), ) -// Group Meta +// Nip29 export const groupMeta = deriveEvents(repository, {filters: [{kinds: [GROUP_META]}]}) +export const hasNip29 = (relay?: Relay) => + relay?.profile?.supported_nips?.map(String)?.includes("29") + // Channels export type ChannelMeta = { diff --git a/src/routes/spaces/[relay]/[room]/+page.svelte b/src/routes/spaces/[relay]/[room]/+page.svelte index cd9ceed..340426f 100644 --- a/src/routes/spaces/[relay]/[room]/+page.svelte +++ b/src/routes/spaces/[relay]/[room]/+page.svelte @@ -35,7 +35,7 @@ import {setChecked} from "@app/notifications" import {nip29, addRoomMembership, removeRoomMembership, getThunkError} from "@app/commands" import {listenForChannelMessages} from "@app/requests" - import {PROTECTED} from "@app/state" + import {PROTECTED, hasNip29} from "@app/state" import {popKey} from "@app/implicit" import {pushToast} from "@app/toast" @@ -55,7 +55,7 @@ const assertEvent = (e: any) => e as TrustedEvent const joinRoom = async () => { - if (nip29.isSupported($relay)) { + if (hasNip29($relay)) { const message = await getThunkError(nip29.joinRoom(url, room)) if (message && !message.includes("already")) { @@ -67,7 +67,7 @@ } const leaveRoom = () => { - if (nip29.isSupported($relay)) { + if (hasNip29($relay)) { nip29.leaveRoom(url, room) }