Avoid attempting to unwrap the same event multiple times in a single page load
This commit is contained in:
parent
e5fd172994
commit
6a646b3240
1 changed files with 5 additions and 1 deletions
|
|
@ -161,6 +161,8 @@ export const getDefaultPubkeys = () => {
|
||||||
return userPubkeys.length > 5 ? userPubkeys : [...userPubkeys, ...appPubkeys]
|
return userPubkeys.length > 5 ? userPubkeys : [...userPubkeys, ...appPubkeys]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const failedUnwraps = new Set()
|
||||||
|
|
||||||
export const ensureUnwrapped = async (event: TrustedEvent) => {
|
export const ensureUnwrapped = async (event: TrustedEvent) => {
|
||||||
if (event.kind !== WRAP) {
|
if (event.kind !== WRAP) {
|
||||||
return event
|
return event
|
||||||
|
|
@ -168,7 +170,7 @@ export const ensureUnwrapped = async (event: TrustedEvent) => {
|
||||||
|
|
||||||
let rumor = repository.eventsByWrap.get(event.id)
|
let rumor = repository.eventsByWrap.get(event.id)
|
||||||
|
|
||||||
if (rumor) {
|
if (rumor || failedUnwraps.has(event.id)) {
|
||||||
return rumor
|
return rumor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -192,6 +194,8 @@ export const ensureUnwrapped = async (event: TrustedEvent) => {
|
||||||
|
|
||||||
// Send the rumor via our relay so listeners get updated
|
// Send the rumor via our relay so listeners get updated
|
||||||
relay.send("EVENT", rumor)
|
relay.send("EVENT", rumor)
|
||||||
|
} else {
|
||||||
|
failedUnwraps.add(event.id)
|
||||||
}
|
}
|
||||||
|
|
||||||
return rumor
|
return rumor
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue