[🐴] Refactor event bus (#3919)

* Refactor to singleton class outside react

* Fix retry, remove debug logs
This commit is contained in:
Eric Bailey 2024-05-08 17:41:10 -05:00 committed by GitHub
parent 0c6bf276dd
commit ce2eddca8e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 250 additions and 356 deletions

View file

@ -5,13 +5,13 @@ import {BskyAgent} from '@atproto-labs/api'
import {useGate} from '#/lib/statsig/statsig'
import {isWeb} from '#/platform/detection'
import {MessagesEventBus} from '#/state/messages/events/agent'
import {MessagesEventBusState} from '#/state/messages/events/types'
import {useAgent} from '#/state/session'
import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage'
import {IS_DEV} from '#/env'
const MessagesEventBusContext =
React.createContext<MessagesEventBusState | null>(null)
const MessagesEventBusContext = React.createContext<MessagesEventBus | null>(
null,
)
export function useMessagesEventBus() {
const ctx = React.useContext(MessagesEventBusContext)
@ -37,12 +37,13 @@ export function Temp_MessagesEventBusProvider({
__tempFromUserDid: getAgent().session?.did!,
}),
)
const service = React.useSyncExternalStore(bus.subscribe, bus.getSnapshot)
if (isWeb && IS_DEV) {
// @ts-ignore
window.messagesEventBus = service
}
React.useEffect(() => {
if (isWeb && IS_DEV) {
// @ts-ignore
window.bus = bus
}
}, [bus])
React.useEffect(() => {
const handleAppStateChange = (nextAppState: string) => {
@ -61,7 +62,7 @@ export function Temp_MessagesEventBusProvider({
}, [bus])
return (
<MessagesEventBusContext.Provider value={service}>
<MessagesEventBusContext.Provider value={bus}>
{children}
</MessagesEventBusContext.Provider>
)