fix: bug of lost followers
This commit is contained in:
@@ -58,9 +58,8 @@ export function FollowListProvider({ children }: { children: React.ReactNode })
|
||||
}, [accountPubkey])
|
||||
|
||||
const updateFollowListEvent = async (event: Event) => {
|
||||
const isNew = await indexedDb.putReplaceableEvent(event)
|
||||
if (!isNew) return
|
||||
setFollowListEvent(event)
|
||||
const newEvent = await indexedDb.putReplaceableEvent(event)
|
||||
setFollowListEvent(newEvent)
|
||||
}
|
||||
|
||||
const follow = async (pubkey: string) => {
|
||||
|
||||
@@ -47,9 +47,9 @@ export function MuteListProvider({ children }: { children: React.ReactNode }) {
|
||||
})
|
||||
const muteEvent = getLatestEvent(events) as Event | undefined
|
||||
if (muteEvent) {
|
||||
await indexedDb.putReplaceableEvent(muteEvent)
|
||||
setMuteListEvent(muteEvent)
|
||||
const tags = await extractMuteTags(muteEvent)
|
||||
const newMuteEvent = await indexedDb.putReplaceableEvent(muteEvent)
|
||||
setMuteListEvent(newMuteEvent)
|
||||
const tags = await extractMuteTags(newMuteEvent)
|
||||
setTags(tags)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -403,17 +403,15 @@ export function NostrProvider({ children }: { children: React.ReactNode }) {
|
||||
}
|
||||
|
||||
const updateRelayListEvent = async (relayListEvent: Event) => {
|
||||
const isNew = await indexedDb.putReplaceableEvent(relayListEvent)
|
||||
if (!isNew) return
|
||||
setRelayList(getRelayListFromRelayListEvent(relayListEvent))
|
||||
const newRelayList = await indexedDb.putReplaceableEvent(relayListEvent)
|
||||
setRelayList(getRelayListFromRelayListEvent(newRelayList))
|
||||
}
|
||||
|
||||
const updateProfileEvent = async (profileEvent: Event) => {
|
||||
const isNew = await indexedDb.putReplaceableEvent(profileEvent)
|
||||
if (!isNew) return
|
||||
setProfileEvent(profileEvent)
|
||||
setProfile(getProfileFromProfileEvent(profileEvent))
|
||||
client.updateProfileCache(profileEvent)
|
||||
const newProfileEvent = await indexedDb.putReplaceableEvent(profileEvent)
|
||||
setProfileEvent(newProfileEvent)
|
||||
setProfile(getProfileFromProfileEvent(newProfileEvent))
|
||||
client.updateProfileCache(newProfileEvent)
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
@@ -70,7 +70,7 @@ class IndexedDbService {
|
||||
return this.initPromise
|
||||
}
|
||||
|
||||
async putReplaceableEvent(event: Event): Promise<boolean> {
|
||||
async putReplaceableEvent(event: Event): Promise<Event> {
|
||||
const storeName = this.getStoreNameByKind(event.kind)
|
||||
if (!storeName) {
|
||||
return Promise.reject('store name not found')
|
||||
@@ -87,11 +87,11 @@ class IndexedDbService {
|
||||
getRequest.onsuccess = () => {
|
||||
const oldValue = getRequest.result as TValue<Event> | undefined
|
||||
if (oldValue && oldValue.value.created_at >= event.created_at) {
|
||||
return resolve(false)
|
||||
return resolve(oldValue.value)
|
||||
}
|
||||
const putRequest = store.put(this.formatValue(event.pubkey, event))
|
||||
putRequest.onsuccess = () => {
|
||||
resolve(true)
|
||||
resolve(event)
|
||||
}
|
||||
|
||||
putRequest.onerror = (event) => {
|
||||
|
||||
Reference in New Issue
Block a user