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 {
GENERAL,
userMembership,
decodeNRelay,
decodeRelay,
getMembershipRoomsByUrl,
getMembershipUrls,
roomsByUrl,
@@ -25,7 +25,7 @@
import {makeSpacePath} from "@app/routes"
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
const assertNotNil = <T,>(x: T) => x!

View File

@@ -1,9 +1,9 @@
import {nip19} from "nostr-tools"
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 = "") => {
let path = `/spaces/${nip19.nrelayEncode(url)}`
let path = `/spaces/${encodeRelay(url)}`
if (extra) {
path += "/" + encodeURIComponent(extra)
@@ -23,7 +23,7 @@ export const getPrimaryNavItemIndex = ($page: Page) => {
case "discover":
return urls.length + 2
case "spaces": {
const routeUrl = decodeNRelay($page.params.nrelay)
const routeUrl = decodeRelay($page.params.relay)
return urls.findIndex(url => url === routeUrl) + 1
}

View File

@@ -31,6 +31,7 @@ import {
asDecryptedEvent,
isSignedEvent,
hasValidSignature,
normalizeRelayUrl,
} from "@welshman/util"
import type {TrustedEvent, SignedEvent, PublishedList, List} from "@welshman/util"
import {Nip59} from "@welshman/signer"
@@ -473,7 +474,9 @@ export const userMembership = withGetter(
// 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) => {
if (content === "+") return "❤️"

View File

@@ -77,4 +77,5 @@ export function slideAndFade(
export const conditionalTransition =
(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,
userMembership,
roomsByUrl,
decodeNRelay,
decodeRelay,
GENERAL,
} from "@app/state"
import {checkRelayConnection, checkRelayAuth} from "@app/commands"
@@ -58,7 +58,7 @@
let delay = 0
let showMenu = false
$: url = decodeNRelay($page.params.nrelay)
$: url = decodeRelay($page.params.relay)
$: rooms = getMembershipRoomsByUrl(url, $userMembership)
$: 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 {
userMembership,
decodeNRelay,
decodeRelay,
makeChannelId,
deriveChannel,
GENERAL,
@@ -36,8 +36,8 @@
} from "@app/state"
import {addRoomMembership, removeRoomMembership} from "@app/commands"
const {nrelay, room = GENERAL} = $page.params
const url = decodeNRelay(nrelay)
const {room = GENERAL} = $page.params
const url = decodeRelay($page.params.relay)
const channel = deriveChannel(makeChannelId(url, room))
const thunks = writable({} as Record<string, Thunk>)

View File

@@ -13,9 +13,9 @@
import EventItem from "@app/components/EventItem.svelte"
import EventCreate from "@app/components/EventCreate.svelte"
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 events = deriveEventsForUrl(url, kinds)

View File

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