Update router methods
This commit is contained in:
+6
-6
@@ -196,7 +196,7 @@ export const broadcastUserData = async (relays: string[]) => {
|
|||||||
export const addSpaceMembership = async (url: string) => {
|
export const addSpaceMembership = async (url: string) => {
|
||||||
const list = get(userMembership) || makeList({kind: MEMBERSHIPS})
|
const list = get(userMembership) || makeList({kind: MEMBERSHIPS})
|
||||||
const event = await addToListPublicly(list, ["r", url]).reconcile(nip44EncryptToSelf)
|
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
|
return publishThunk({event, relays}).result
|
||||||
}
|
}
|
||||||
@@ -205,7 +205,7 @@ export const removeSpaceMembership = async (url: string) => {
|
|||||||
const list = get(userMembership) || makeList({kind: MEMBERSHIPS})
|
const list = get(userMembership) || makeList({kind: MEMBERSHIPS})
|
||||||
const pred = (t: string[]) => t[t[0] === "r" ? 1 : 2] === url
|
const pred = (t: string[]) => t[t[0] === "r" ? 1 : 2] === url
|
||||||
const event = await removeFromListByPredicate(list, pred).reconcile(nip44EncryptToSelf)
|
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
|
return publishThunk({event, relays}).result
|
||||||
}
|
}
|
||||||
@@ -213,7 +213,7 @@ export const removeSpaceMembership = async (url: string) => {
|
|||||||
export const addRoomMembership = async (url: string, room: string) => {
|
export const addRoomMembership = async (url: string, room: string) => {
|
||||||
const list = get(userMembership) || makeList({kind: MEMBERSHIPS})
|
const list = get(userMembership) || makeList({kind: MEMBERSHIPS})
|
||||||
const event = await addToListPublicly(list, tagRoom(room, url)).reconcile(nip44EncryptToSelf)
|
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
|
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 list = get(userMembership) || makeList({kind: MEMBERSHIPS})
|
||||||
const pred = (t: string[]) => equals(tagRoom(room, url), t)
|
const pred = (t: string[]) => equals(tagRoom(room, url), t)
|
||||||
const event = await removeFromListByPredicate(list, pred).reconcile(nip44EncryptToSelf)
|
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
|
return publishThunk({event, relays}).result
|
||||||
}
|
}
|
||||||
@@ -241,7 +241,7 @@ export const setRelayPolicy = (url: string, read: boolean, write: boolean) => {
|
|||||||
|
|
||||||
return publishThunk({
|
return publishThunk({
|
||||||
event: createEvent(list.kind, {tags}),
|
event: createEvent(list.kind, {tags}),
|
||||||
relays: ctx.app.router.WriteRelays().getUrls(),
|
relays: ctx.app.router.FromUser().getUrls(),
|
||||||
}).result
|
}).result
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -258,7 +258,7 @@ export const setInboxRelayPolicy = (url: string, enabled: boolean) => {
|
|||||||
|
|
||||||
return publishThunk({
|
return publishThunk({
|
||||||
event: createEvent(list.kind, {tags}),
|
event: createEvent(list.kind, {tags}),
|
||||||
relays: ctx.app.router.WriteRelays().getUrls(),
|
relays: ctx.app.router.FromUser().getUrls(),
|
||||||
}).result
|
}).result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,21 +65,21 @@ export const getEditorTags = (editor: Editor) => {
|
|||||||
({attrs: {kind, pubkey, identifier, relays = []}}: any) => {
|
({attrs: {kind, pubkey, identifier, relays = []}}: any) => {
|
||||||
const address = new Address(kind, pubkey, identifier).toString()
|
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) => [
|
const neventTags = findNodes("nevent", json).map(({attrs: {id, author, relays = []}}: any) => [
|
||||||
"q",
|
"q",
|
||||||
id,
|
id,
|
||||||
ctx.app.router.fromRelays(relays).getUrl(),
|
ctx.app.router.FromRelays(relays).getUrl(),
|
||||||
author || "",
|
author || "",
|
||||||
])
|
])
|
||||||
|
|
||||||
const mentionTags = findNodes("nprofile", json).map(({attrs: {pubkey, relays = []}}: any) => [
|
const mentionTags = findNodes("nprofile", json).map(({attrs: {pubkey, relays = []}}: any) => [
|
||||||
"p",
|
"p",
|
||||||
pubkey,
|
pubkey,
|
||||||
ctx.app.router.fromRelays(relays).getUrl(),
|
ctx.app.router.FromRelays(relays).getUrl(),
|
||||||
"",
|
"",
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|||||||
@@ -19,12 +19,12 @@
|
|||||||
event: createEvent(SETTINGS, {
|
event: createEvent(SETTINGS, {
|
||||||
content: await $signer!.nip04.encrypt($pubkey!, JSON.stringify(settings)),
|
content: await $signer!.nip04.encrypt($pubkey!, JSON.stringify(settings)),
|
||||||
}),
|
}),
|
||||||
relays: ctx.app.router.WriteRelays().getUrls(),
|
relays: ctx.app.router.FromUser().getUrls(),
|
||||||
})
|
})
|
||||||
|
|
||||||
publishThunk({
|
publishThunk({
|
||||||
event: createEvent(MUTES, {tags: mutedPubkeys.map(tagPubkey)}),
|
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!"})
|
pushToast({message: "Your settings have been saved!"})
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
const saveEdit = () => {
|
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 template = isPublishedProfile(values) ? editProfile(values) : createProfile(values)
|
||||||
const event = createEvent(template.kind, template)
|
const event = createEvent(template.kind, template)
|
||||||
|
|
||||||
|
|||||||
@@ -32,8 +32,11 @@
|
|||||||
let limit = 5
|
let limit = 5
|
||||||
let loading = true
|
let loading = true
|
||||||
let element: Element
|
let element: Element
|
||||||
|
let scroller
|
||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
|
let unmounted = false
|
||||||
|
|
||||||
const ctrl = createFeedController({
|
const ctrl = createFeedController({
|
||||||
feed,
|
feed,
|
||||||
onExhausted: () => {
|
onExhausted: () => {
|
||||||
@@ -46,20 +49,26 @@
|
|||||||
relays: [url],
|
relays: [url],
|
||||||
})
|
})
|
||||||
|
|
||||||
const scroller = createScroller({
|
// Element is frequently not defined. I don't know why
|
||||||
element,
|
setTimeout(() => {
|
||||||
delay: 300,
|
if (!unmounted) {
|
||||||
threshold: 3000,
|
scroller = createScroller({
|
||||||
onScroll: async () => {
|
element,
|
||||||
limit += 5
|
delay: 300,
|
||||||
|
threshold: 3000,
|
||||||
|
onScroll: async () => {
|
||||||
|
limit += 5
|
||||||
|
|
||||||
await ctrl.load(5)
|
await ctrl.load(5)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
}, 1000)
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
|
unmounted = true
|
||||||
unsub()
|
unsub()
|
||||||
scroller.stop()
|
scroller?.stop()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user