fix: 🐛
This commit is contained in:
@@ -1,11 +1,13 @@
|
|||||||
import { DEFAULT_FAVORITE_RELAYS } from '@/constants'
|
import { DEFAULT_FAVORITE_RELAYS } from '@/constants'
|
||||||
|
import { getRelaySetFromRelaySetEvent } from '@/lib/event'
|
||||||
import { checkAlgoRelay } from '@/lib/relay'
|
import { checkAlgoRelay } from '@/lib/relay'
|
||||||
import { isWebsocketUrl, normalizeUrl } from '@/lib/url'
|
import { isWebsocketUrl, normalizeUrl } from '@/lib/url'
|
||||||
import client from '@/services/client.service'
|
import client from '@/services/client.service'
|
||||||
|
import indexedDb from '@/services/indexed-db.service'
|
||||||
import storage from '@/services/local-storage.service'
|
import storage from '@/services/local-storage.service'
|
||||||
import relayInfoService from '@/services/relay-info.service'
|
import relayInfoService from '@/services/relay-info.service'
|
||||||
import { TFeedInfo, TFeedType } from '@/types'
|
import { TFeedInfo, TFeedType } from '@/types'
|
||||||
import { Filter } from 'nostr-tools'
|
import { Filter, kinds } from 'nostr-tools'
|
||||||
import { createContext, useContext, useEffect, useRef, useState } from 'react'
|
import { createContext, useContext, useEffect, useRef, useState } from 'react'
|
||||||
import { useFavoriteRelays } from './FavoriteRelaysProvider'
|
import { useFavoriteRelays } from './FavoriteRelaysProvider'
|
||||||
import { useNostr } from './NostrProvider'
|
import { useNostr } from './NostrProvider'
|
||||||
@@ -133,14 +135,24 @@ export function FeedProvider({ children }: { children: React.ReactNode }) {
|
|||||||
}
|
}
|
||||||
if (feedType === 'relays') {
|
if (feedType === 'relays') {
|
||||||
const relaySetId = options.activeRelaySetId ?? (relaySets.length > 0 ? relaySets[0].id : null)
|
const relaySetId = options.activeRelaySetId ?? (relaySets.length > 0 ? relaySets[0].id : null)
|
||||||
if (!relaySetId) {
|
if (!relaySetId || !pubkey) {
|
||||||
setIsReady(true)
|
setIsReady(true)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const relaySet =
|
let relaySet =
|
||||||
relaySets.find((set) => set.id === options.activeRelaySetId) ??
|
relaySets.find((set) => set.id === relaySetId) ??
|
||||||
(relaySets.length > 0 ? relaySets[0] : null)
|
(relaySets.length > 0 ? relaySets[0] : null)
|
||||||
|
if (!relaySet) {
|
||||||
|
const storedRelaySetEvent = await indexedDb.getReplaceableEvent(
|
||||||
|
pubkey,
|
||||||
|
kinds.Relaysets,
|
||||||
|
relaySetId
|
||||||
|
)
|
||||||
|
if (storedRelaySetEvent) {
|
||||||
|
relaySet = getRelaySetFromRelaySetEvent(storedRelaySetEvent)
|
||||||
|
}
|
||||||
|
}
|
||||||
if (relaySet) {
|
if (relaySet) {
|
||||||
const newFeedInfo = { feedType, id: relaySet.id }
|
const newFeedInfo = { feedType, id: relaySet.id }
|
||||||
setFeedInfo(newFeedInfo)
|
setFeedInfo(newFeedInfo)
|
||||||
@@ -160,7 +172,8 @@ export function FeedProvider({ children }: { children: React.ReactNode }) {
|
|||||||
}
|
}
|
||||||
if (feedType === 'following') {
|
if (feedType === 'following') {
|
||||||
if (!options.pubkey) {
|
if (!options.pubkey) {
|
||||||
return setIsReady(true)
|
setIsReady(true)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
const newFeedInfo = { feedType }
|
const newFeedInfo = { feedType }
|
||||||
setFeedInfo(newFeedInfo)
|
setFeedInfo(newFeedInfo)
|
||||||
@@ -172,11 +185,13 @@ export function FeedProvider({ children }: { children: React.ReactNode }) {
|
|||||||
setFilter({
|
setFilter({
|
||||||
authors: followings.includes(options.pubkey) ? followings : [...followings, options.pubkey]
|
authors: followings.includes(options.pubkey) ? followings : [...followings, options.pubkey]
|
||||||
})
|
})
|
||||||
return setIsReady(true)
|
setIsReady(true)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
if (feedType === 'bookmarks') {
|
if (feedType === 'bookmarks') {
|
||||||
if (!options.pubkey) {
|
if (!options.pubkey) {
|
||||||
return setIsReady(true)
|
setIsReady(true)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const newFeedInfo = { feedType }
|
const newFeedInfo = { feedType }
|
||||||
@@ -186,12 +201,14 @@ export function FeedProvider({ children }: { children: React.ReactNode }) {
|
|||||||
|
|
||||||
setRelayUrls([])
|
setRelayUrls([])
|
||||||
setFilter({})
|
setFilter({})
|
||||||
return setIsReady(true)
|
setIsReady(true)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
if (feedType === 'temporary') {
|
if (feedType === 'temporary') {
|
||||||
const urls = options.temporaryRelayUrls ?? temporaryRelayUrls
|
const urls = options.temporaryRelayUrls ?? temporaryRelayUrls
|
||||||
if (!urls.length) {
|
if (!urls.length) {
|
||||||
return setIsReady(true)
|
setIsReady(true)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const newFeedInfo = { feedType }
|
const newFeedInfo = { feedType }
|
||||||
|
|||||||
Reference in New Issue
Block a user