From 2b9de01905d7621dc5f0b468f9e141f174b33790 Mon Sep 17 00:00:00 2001 From: codytseng Date: Sat, 5 Apr 2025 21:08:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/providers/FeedProvider.tsx | 8 ++++++-- src/providers/NostrProvider/index.tsx | 7 ++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/providers/FeedProvider.tsx b/src/providers/FeedProvider.tsx index cf3f2547..3ef61024 100644 --- a/src/providers/FeedProvider.tsx +++ b/src/providers/FeedProvider.tsx @@ -34,7 +34,7 @@ export const useFeed = () => { export function FeedProvider({ children }: { children: React.ReactNode }) { const isFirstRenderRef = useRef(true) - const { pubkey } = useNostr() + const { pubkey, isInitialized } = useNostr() const { relaySets, favoriteRelays } = useFavoriteRelays() const [relayUrls, setRelayUrls] = useState([]) const [temporaryRelayUrls, setTemporaryRelayUrls] = useState([]) @@ -66,6 +66,10 @@ export function FeedProvider({ children }: { children: React.ReactNode }) { return } + if (!isInitialized) { + return + } + let feedInfo: TFeedInfo = { feedType: 'relay', id: favoriteRelays[0] ?? DEFAULT_FAVORITE_RELAYS[0] @@ -92,7 +96,7 @@ export function FeedProvider({ children }: { children: React.ReactNode }) { } init() - }, [pubkey]) + }, [pubkey, isInitialized]) const switchFeed = async ( feedType: TFeedType, diff --git a/src/providers/NostrProvider/index.tsx b/src/providers/NostrProvider/index.tsx index 1e3ac928..b6d77150 100644 --- a/src/providers/NostrProvider/index.tsx +++ b/src/providers/NostrProvider/index.tsx @@ -24,6 +24,7 @@ import { NsecSigner } from './nsec.signer' import { NpubSigner } from './npub.signer' type TNostrContext = { + isInitialized: boolean pubkey: string | null profile: TProfile | null profileEvent: Event | null @@ -83,6 +84,7 @@ export function NostrProvider({ children }: { children: React.ReactNode }) { const [followListEvent, setFollowListEvent] = useState(undefined) const [muteListEvent, setMuteListEvent] = useState(undefined) const [favoriteRelaysEvent, setFavoriteRelaysEvent] = useState(null) + const [isInitialized, setIsInitialized] = useState(false) useEffect(() => { const init = async () => { @@ -96,7 +98,9 @@ export function NostrProvider({ children }: { children: React.ReactNode }) { await loginWithAccountPointer(act) } - init() + init().then(() => { + setIsInitialized(true) + }) const handleHashChange = () => { if (hasNostrLoginHash()) { @@ -537,6 +541,7 @@ export function NostrProvider({ children }: { children: React.ReactNode }) { return (