diff options
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( () => |