diff options
author | Eric Bailey <git@esb.lol> | 2024-05-23 12:00:56 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-23 12:00:56 -0500 |
commit | 3d1ed04a70aff9c08b713392ac0a4d3856ae16e9 (patch) | |
tree | 705028de4382929bd068371a1bbf94dbb757a2be /src | |
parent | 17e0cb62a8f2de113286f154f3d7b59f32ce3669 (diff) | |
download | voidsky-3d1ed04a70aff9c08b713392ac0a4d3856ae16e9.tar.zst |
[🐴] Do not init event bus if no session (#4193)
* Do not init event bus if no session * Be explicit * Simplify, fix log
Diffstat (limited to 'src')
-rw-r--r-- | src/state/messages/events/index.tsx | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/state/messages/events/index.tsx b/src/state/messages/events/index.tsx index 6bf792324..d972c8c6a 100644 --- a/src/state/messages/events/index.tsx +++ b/src/state/messages/events/index.tsx @@ -2,7 +2,7 @@ import React from 'react' import {AppState} from 'react-native' import {MessagesEventBus} from '#/state/messages/events/agent' -import {useAgent} from '#/state/session' +import {useAgent, useSession} from '#/state/session' const MessagesEventBusContext = React.createContext<MessagesEventBus | null>( null, @@ -11,7 +11,9 @@ const MessagesEventBusContext = React.createContext<MessagesEventBus | null>( export function useMessagesEventBus() { const ctx = React.useContext(MessagesEventBusContext) if (!ctx) { - throw new Error('useChat must be used within a ChatProvider') + throw new Error( + 'useMessagesEventBus must be used within a MessagesEventBusProvider', + ) } return ctx } @@ -21,6 +23,26 @@ export function MessagesEventBusProvider({ }: { children: React.ReactNode }) { + const {currentAccount} = useSession() + + if (!currentAccount) { + return ( + <MessagesEventBusContext.Provider value={null}> + {children} + </MessagesEventBusContext.Provider> + ) + } + + return ( + <MessagesEventBusProviderInner>{children}</MessagesEventBusProviderInner> + ) +} + +export function MessagesEventBusProviderInner({ + children, +}: { + children: React.ReactNode +}) { const {getAgent} = useAgent() const [bus] = React.useState( () => |