Wait for auth before requesting stuff

This commit is contained in:
Jon Staab
2024-08-19 10:26:25 -07:00
parent cf41ea58fd
commit 4d7c880576
4 changed files with 25 additions and 14 deletions

View File

@@ -52,8 +52,7 @@ export const updateList = async (kind: number, modifyTags: ModifyTags) => {
const $pk = pk.get()! const $pk = pk.get()!
const $signer = signer.get()! const $signer = signer.get()!
const [prev] = repository.query([{kinds: [kind], authors: [$pk]}]) const [prev] = repository.query([{kinds: [kind], authors: [$pk]}])
const userRelays = getRelaySelectionsByPubkey().get($pk) const relays = getWriteRelayUrls(getRelaySelectionsByPubkey().get($pk))
const relays = [...INDEXER_RELAYS, ...getWriteRelayUrls(userRelays)]
// Preserve content if we have it // Preserve content if we have it
const event = prev const event = prev

View File

@@ -20,7 +20,7 @@
['fuchsia', twColors.fuchsia[600]], ['fuchsia', twColors.fuchsia[600]],
['green', twColors.green[600]], ['green', twColors.green[600]],
['indigo', twColors.indigo[600]], ['indigo', twColors.indigo[600]],
['lightBlue', twColors.lightBlue[600]], ['sky', twColors.sky[600]],
['lime', twColors.lime[600]], ['lime', twColors.lime[600]],
['orange', twColors.orange[600]], ['orange', twColors.orange[600]],
['pink', twColors.pink[600]], ['pink', twColors.pink[600]],

View File

@@ -36,8 +36,8 @@ import {
GROUP_ADD_USER, GROUP_ADD_USER,
} from "@welshman/util" } from "@welshman/util"
import type {SignedEvent, HashedEvent, EventTemplate, TrustedEvent, PublishedProfile, PublishedList} from "@welshman/util" import type {SignedEvent, HashedEvent, EventTemplate, TrustedEvent, PublishedProfile, PublishedList} from "@welshman/util"
import type {SubscribeRequest, PublishRequest, PublishStatus} from "@welshman/net" import type {SubscribeRequest, PublishRequest} from "@welshman/net"
import {publish as basePublish, subscribe as baseSubscribe} from "@welshman/net" import {publish as basePublish, subscribe as baseSubscribe, PublishStatus} from "@welshman/net"
import {decrypt, stamp, own, hash} from "@welshman/signer" import {decrypt, stamp, own, hash} from "@welshman/signer"
import {deriveEvents, deriveEventsMapped, getter, withGetter} from "@welshman/store" import {deriveEvents, deriveEventsMapped, getter, withGetter} from "@welshman/store"
import {createSearch} from "@lib/util" import {createSearch} from "@lib/util"
@@ -143,9 +143,19 @@ thunkWorker.addGlobalHandler(async ({event, relays}: Thunk) => {
savedEvent.sig = signedEvent.sig savedEvent.sig = signedEvent.sig
} }
const failures = new Set<string>()
// Watch for failures // Watch for failures
pub.emitter.on('*', (status: PublishStatus, url: string) => { pub.emitter.on('*', (status: PublishStatus, url: string) => {
console.log('pub status', status, url) console.log('pub status', status, url)
if ([PublishStatus.Failure, PublishStatus.Timeout].includes(status)) {
failures.add(url)
}
if (failures.size === relays.length) {
console.warn("Failed to publish", pub)
}
}) })
}) })
@@ -172,7 +182,7 @@ export const publishThunk = (thunk: Thunk) => {
// Subscribe // Subscribe
export const subscribe = (request: SubscribeRequest) => { export const subscribe = (request: SubscribeRequest) => {
const sub = baseSubscribe({delay: 50, ...request}) const sub = baseSubscribe({delay: 50, authTimeout: 3000, ...request})
sub.emitter.on("event", (url: string, e: SignedEvent) => repository.publish(e)) sub.emitter.on("event", (url: string, e: SignedEvent) => repository.publish(e))

View File

@@ -41,14 +41,6 @@
} }
onMount(() => { onMount(() => {
for (const url of DEFAULT_RELAYS) {
loadRelay(url)
}
if ($pk) {
loadUserData($pk)
}
ready = initStorage({ ready = initStorage({
events: { events: {
keyPath: "id", keyPath: "id",
@@ -69,6 +61,16 @@
clearModal() clearModal()
} }
}) })
ready.then(() => {
for (const url of DEFAULT_RELAYS) {
loadRelay(url)
}
if ($pk) {
loadUserData($pk)
}
})
}) })
</script> </script>