Update router methods

This commit is contained in:
Jon Staab
2024-11-12 13:32:54 -08:00
parent d5412811b2
commit 952ebd38bf
5 changed files with 31 additions and 22 deletions

View File

@@ -196,7 +196,7 @@ export const broadcastUserData = async (relays: string[]) => {
export const addSpaceMembership = async (url: string) => {
const list = get(userMembership) || makeList({kind: MEMBERSHIPS})
const event = await addToListPublicly(list, ["r", url]).reconcile(nip44EncryptToSelf)
const relays = uniq([...ctx.app.router.WriteRelays().getUrls(), ...getRelayTagValues(event.tags)])
const relays = uniq([...ctx.app.router.FromUser().getUrls(), ...getRelayTagValues(event.tags)])
return publishThunk({event, relays}).result
}
@@ -205,7 +205,7 @@ export const removeSpaceMembership = async (url: string) => {
const list = get(userMembership) || makeList({kind: MEMBERSHIPS})
const pred = (t: string[]) => t[t[0] === "r" ? 1 : 2] === url
const event = await removeFromListByPredicate(list, pred).reconcile(nip44EncryptToSelf)
const relays = uniq([...ctx.app.router.WriteRelays().getUrls(), ...getRelayTagValues(event.tags)])
const relays = uniq([...ctx.app.router.FromUser().getUrls(), ...getRelayTagValues(event.tags)])
return publishThunk({event, relays}).result
}
@@ -213,7 +213,7 @@ export const removeSpaceMembership = async (url: string) => {
export const addRoomMembership = async (url: string, room: string) => {
const list = get(userMembership) || makeList({kind: MEMBERSHIPS})
const event = await addToListPublicly(list, tagRoom(room, url)).reconcile(nip44EncryptToSelf)
const relays = uniq([...ctx.app.router.WriteRelays().getUrls(), ...getRelayTagValues(event.tags)])
const relays = uniq([...ctx.app.router.FromUser().getUrls(), ...getRelayTagValues(event.tags)])
return publishThunk({event, relays}).result
}
@@ -222,7 +222,7 @@ export const removeRoomMembership = async (url: string, room: string) => {
const list = get(userMembership) || makeList({kind: MEMBERSHIPS})
const pred = (t: string[]) => equals(tagRoom(room, url), t)
const event = await removeFromListByPredicate(list, pred).reconcile(nip44EncryptToSelf)
const relays = uniq([...ctx.app.router.WriteRelays().getUrls(), ...getRelayTagValues(event.tags)])
const relays = uniq([...ctx.app.router.FromUser().getUrls(), ...getRelayTagValues(event.tags)])
return publishThunk({event, relays}).result
}
@@ -241,7 +241,7 @@ export const setRelayPolicy = (url: string, read: boolean, write: boolean) => {
return publishThunk({
event: createEvent(list.kind, {tags}),
relays: ctx.app.router.WriteRelays().getUrls(),
relays: ctx.app.router.FromUser().getUrls(),
}).result
}
@@ -258,7 +258,7 @@ export const setInboxRelayPolicy = (url: string, enabled: boolean) => {
return publishThunk({
event: createEvent(list.kind, {tags}),
relays: ctx.app.router.WriteRelays().getUrls(),
relays: ctx.app.router.FromUser().getUrls(),
}).result
}
}

View File

@@ -65,21 +65,21 @@ export const getEditorTags = (editor: Editor) => {
({attrs: {kind, pubkey, identifier, relays = []}}: any) => {
const address = new Address(kind, pubkey, identifier).toString()
return ["q", address, ctx.app.router.fromRelays(relays).getUrl(), pubkey]
return ["q", address, ctx.app.router.FromRelays(relays).getUrl(), pubkey]
},
)
const neventTags = findNodes("nevent", json).map(({attrs: {id, author, relays = []}}: any) => [
"q",
id,
ctx.app.router.fromRelays(relays).getUrl(),
ctx.app.router.FromRelays(relays).getUrl(),
author || "",
])
const mentionTags = findNodes("nprofile", json).map(({attrs: {pubkey, relays = []}}: any) => [
"p",
pubkey,
ctx.app.router.fromRelays(relays).getUrl(),
ctx.app.router.FromRelays(relays).getUrl(),
"",
])

View File

@@ -19,12 +19,12 @@
event: createEvent(SETTINGS, {
content: await $signer!.nip04.encrypt($pubkey!, JSON.stringify(settings)),
}),
relays: ctx.app.router.WriteRelays().getUrls(),
relays: ctx.app.router.FromUser().getUrls(),
})
publishThunk({
event: createEvent(MUTES, {tags: mutedPubkeys.map(tagPubkey)}),
relays: ctx.app.router.WriteRelays().getUrls(),
relays: ctx.app.router.FromUser().getUrls(),
})
pushToast({message: "Your settings have been saved!"})

View File

@@ -48,7 +48,7 @@
}
const saveEdit = () => {
const relays = ctx.app.router.WriteRelays().getUrls()
const relays = ctx.app.router.FromUser().getUrls()
const template = isPublishedProfile(values) ? editProfile(values) : createProfile(values)
const event = createEvent(template.kind, template)

View File

@@ -32,8 +32,11 @@
let limit = 5
let loading = true
let element: Element
let scroller
onMount(() => {
let unmounted = false
const ctrl = createFeedController({
feed,
onExhausted: () => {
@@ -46,20 +49,26 @@
relays: [url],
})
const scroller = createScroller({
element,
delay: 300,
threshold: 3000,
onScroll: async () => {
limit += 5
// Element is frequently not defined. I don't know why
setTimeout(() => {
if (!unmounted) {
scroller = createScroller({
element,
delay: 300,
threshold: 3000,
onScroll: async () => {
limit += 5
await ctrl.load(5)
},
})
await ctrl.load(5)
},
})
}
}, 1000)
return () => {
unmounted = true
unsub()
scroller.stop()
scroller?.stop()
}
})
</script>