about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/state/messages/events/index.tsx26
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(
     () =>