Drop nrelay, fix space threads

This commit is contained in:
Jon Staab 2024-10-21 10:30:12 -07:00
parent af5e1e68cc
commit 5aee73fb6f
8 changed files with 24 additions and 19 deletions

View file

@ -17,7 +17,7 @@
import { import {
GENERAL, GENERAL,
userMembership, userMembership,
decodeNRelay, decodeRelay,
getMembershipRoomsByUrl, getMembershipRoomsByUrl,
getMembershipUrls, getMembershipUrls,
roomsByUrl, roomsByUrl,
@ -25,7 +25,7 @@
import {makeSpacePath} from "@app/routes" import {makeSpacePath} from "@app/routes"
import {pushModal} from "@app/modal" import {pushModal} from "@app/modal"
let space = $page.params?.nrelay ? decodeNRelay($page.params?.nrelay) : undefined let space = $page.params?.relay ? decodeRelay($page.params?.relay) : undefined
let showSettings = false let showSettings = false
const assertNotNil = <T,>(x: T) => x! const assertNotNil = <T,>(x: T) => x!

View file

@ -1,9 +1,9 @@
import {nip19} from "nostr-tools" import {nip19} from "nostr-tools"
import type {Page} from "@sveltejs/kit" import type {Page} from "@sveltejs/kit"
import {userMembership, makeChatId, decodeNRelay, getMembershipUrls} from "@app/state" import {userMembership, makeChatId, decodeRelay, encodeRelay, getMembershipUrls} from "@app/state"
export const makeSpacePath = (url: string, extra = "") => { export const makeSpacePath = (url: string, extra = "") => {
let path = `/spaces/${nip19.nrelayEncode(url)}` let path = `/spaces/${encodeRelay(url)}`
if (extra) { if (extra) {
path += "/" + encodeURIComponent(extra) path += "/" + encodeURIComponent(extra)
@ -23,7 +23,7 @@ export const getPrimaryNavItemIndex = ($page: Page) => {
case "discover": case "discover":
return urls.length + 2 return urls.length + 2
case "spaces": { case "spaces": {
const routeUrl = decodeNRelay($page.params.nrelay) const routeUrl = decodeRelay($page.params.relay)
return urls.findIndex(url => url === routeUrl) + 1 return urls.findIndex(url => url === routeUrl) + 1
} }

View file

@ -31,6 +31,7 @@ import {
asDecryptedEvent, asDecryptedEvent,
isSignedEvent, isSignedEvent,
hasValidSignature, hasValidSignature,
normalizeRelayUrl,
} from "@welshman/util" } from "@welshman/util"
import type {TrustedEvent, SignedEvent, PublishedList, List} from "@welshman/util" import type {TrustedEvent, SignedEvent, PublishedList, List} from "@welshman/util"
import {Nip59} from "@welshman/signer" import {Nip59} from "@welshman/signer"
@ -473,7 +474,9 @@ export const userMembership = withGetter(
// Other utils // Other utils
export const decodeNRelay = (nevent: string) => nip19.decode(nevent).data as string export const encodeRelay = (url: string) => encodeURIComponent(normalizeRelayUrl(url))
export const decodeRelay = (url: string) => normalizeRelayUrl(decodeURIComponent(url))
export const displayReaction = (content: string) => { export const displayReaction = (content: string) => {
if (content === "+") return "❤️" if (content === "+") return "❤️"

View file

@ -77,4 +77,5 @@ export function slideAndFade(
export const conditionalTransition = export const conditionalTransition =
(condition: any, transition: any) => (node: any, args?: any) => (condition: any, transition: any) => (node: any, args?: any) =>
condition ? transtion(node, args) : null condition ? transition(node, args) : null

View file

@ -21,7 +21,7 @@
getMembershipUrls, getMembershipUrls,
userMembership, userMembership,
roomsByUrl, roomsByUrl,
decodeNRelay, decodeRelay,
GENERAL, GENERAL,
} from "@app/state" } from "@app/state"
import {checkRelayConnection, checkRelayAuth} from "@app/commands" import {checkRelayConnection, checkRelayAuth} from "@app/commands"
@ -58,7 +58,7 @@
let delay = 0 let delay = 0
let showMenu = false let showMenu = false
$: url = decodeNRelay($page.params.nrelay) $: url = decodeRelay($page.params.relay)
$: rooms = getMembershipRoomsByUrl(url, $userMembership) $: rooms = getMembershipRoomsByUrl(url, $userMembership)
$: otherRooms = ($roomsByUrl.get(url) || []).filter(room => !rooms.concat(GENERAL).includes(room)) $: otherRooms = ($roomsByUrl.get(url) || []).filter(room => !rooms.concat(GENERAL).includes(room))

View file

@ -26,7 +26,7 @@
import ChannelCompose from "@app/components/ChannelCompose.svelte" import ChannelCompose from "@app/components/ChannelCompose.svelte"
import { import {
userMembership, userMembership,
decodeNRelay, decodeRelay,
makeChannelId, makeChannelId,
deriveChannel, deriveChannel,
GENERAL, GENERAL,
@ -36,8 +36,8 @@
} from "@app/state" } from "@app/state"
import {addRoomMembership, removeRoomMembership} from "@app/commands" import {addRoomMembership, removeRoomMembership} from "@app/commands"
const {nrelay, room = GENERAL} = $page.params const {room = GENERAL} = $page.params
const url = decodeNRelay(nrelay) const url = decodeRelay($page.params.relay)
const channel = deriveChannel(makeChannelId(url, room)) const channel = deriveChannel(makeChannelId(url, room))
const thunks = writable({} as Record<string, Thunk>) const thunks = writable({} as Record<string, Thunk>)

View file

@ -13,9 +13,9 @@
import EventItem from "@app/components/EventItem.svelte" import EventItem from "@app/components/EventItem.svelte"
import EventCreate from "@app/components/EventCreate.svelte" import EventCreate from "@app/components/EventCreate.svelte"
import {pushModal} from "@app/modal" import {pushModal} from "@app/modal"
import {deriveEventsForUrl, pullConservatively, decodeNRelay} from "@app/state" import {deriveEventsForUrl, pullConservatively, decodeRelay} from "@app/state"
const url = decodeNRelay($page.params.nrelay) const url = decodeRelay($page.params.relay)
const kinds = [EVENT_DATE, EVENT_TIME] const kinds = [EVENT_DATE, EVENT_TIME]
const events = deriveEventsForUrl(url, kinds) const events = deriveEventsForUrl(url, kinds)

View file

@ -2,7 +2,7 @@
import {onMount} from "svelte" import {onMount} from "svelte"
import {page} from "$app/stores" import {page} from "$app/stores"
import {NOTE} from "@welshman/util" import {NOTE} from "@welshman/util"
import {feedFromFilter} from "@welshman/feeds" import {feedFromFilter, makeIntersectionFeed, makeRelayFeed} from "@welshman/feeds"
import {nthEq} from "@welshman/lib" import {nthEq} from "@welshman/lib"
import {feedLoader} from "@welshman/app" import {feedLoader} from "@welshman/app"
import {createScroller} from "@lib/html" import {createScroller} from "@lib/html"
@ -13,12 +13,13 @@
import ThreadItem from "@app/components/ThreadItem.svelte" import ThreadItem from "@app/components/ThreadItem.svelte"
import ThreadCreate from "@app/components/ThreadCreate.svelte" import ThreadCreate from "@app/components/ThreadCreate.svelte"
import {pushModal} from "@app/modal" import {pushModal} from "@app/modal"
import {deriveEventsForUrl, decodeNRelay} from "@app/state" import {deriveEventsForUrl, decodeRelay} from "@app/state"
const url = decodeNRelay($page.params.nrelay) const url = decodeRelay($page.params.relay)
const kinds = [NOTE] const kinds = [NOTE]
const feed = makeIntersectionFeed(makeRelayFeed(url), feedFromFilter({kinds}))
const events = deriveEventsForUrl(url, kinds) const events = deriveEventsForUrl(url, kinds)
const loader = feedLoader.getLoader(feedFromFilter({kinds}), {}) const loader = feedLoader.getLoader(feed, {})
const createThread = () => pushModal(ThreadCreate, {url}) const createThread = () => pushModal(ThreadCreate, {url})
@ -32,7 +33,7 @@
onScroll: async () => { onScroll: async () => {
const $loader = await loader const $loader = await loader
$loader(5) await $loader(5)
limit += 5 limit += 5
}, },
}) })