mirror of
https://github.com/coracle-social/flotilla.git
synced 2025-12-10 19:07:06 +00:00
Update router methods
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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(),
|
||||
"",
|
||||
])
|
||||
|
||||
|
||||
@@ -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!"})
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user