Add rev to state

This commit is contained in:
Eric Bailey
2024-05-07 14:32:54 -05:00
parent 38262e6ab0
commit 93df04a0d4
3 changed files with 22 additions and 1 deletions
+10 -1
View File
@@ -76,6 +76,7 @@ export class MessagesEventBus {
case MessagesEventBusStatus.Initializing: {
return {
status: MessagesEventBusStatus.Initializing,
rev: undefined,
error: undefined,
setPollInterval: this.setPollInterval,
trail: this.trail,
@@ -84,6 +85,7 @@ export class MessagesEventBus {
case MessagesEventBusStatus.Ready: {
return {
status: this.status,
rev: this.latestRev!,
error: undefined,
setPollInterval: this.setPollInterval,
trail: this.trail,
@@ -92,6 +94,7 @@ export class MessagesEventBus {
case MessagesEventBusStatus.Suspended: {
return {
status: this.status,
rev: this.latestRev,
error: undefined,
setPollInterval: this.setPollInterval,
trail: this.trail,
@@ -100,6 +103,7 @@ export class MessagesEventBus {
case MessagesEventBusStatus.Error: {
return {
status: MessagesEventBusStatus.Error,
rev: this.latestRev,
error: this.error || {
code: MessagesEventBusErrorCode.Unknown,
retry: () => {
@@ -113,6 +117,7 @@ export class MessagesEventBus {
default: {
return {
status: MessagesEventBusStatus.Uninitialized,
rev: undefined,
error: undefined,
setPollInterval: this.setPollInterval,
trail: this.trail,
@@ -406,7 +411,11 @@ export class MessagesEventBus {
}
if (needsEmit) {
this.emitter.emit('events', batch)
try {
this.emitter.emit('events', batch)
} catch (e) {
logger.error(e)
}
}
}
}
+7
View File
@@ -2,10 +2,12 @@ import React from 'react'
import {AppState} from 'react-native'
import {BskyAgent} from '@atproto-labs/api'
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)
@@ -36,6 +38,11 @@ export function MessagesEventBusProvider({
)
const service = React.useSyncExternalStore(bus.subscribe, bus.getSnapshot)
if (isWeb && IS_DEV) {
// @ts-ignore
window.messagesEventBus = service
}
React.useEffect(() => {
const handleAppStateChange = (nextAppState: string) => {
if (nextAppState === 'active') {
+5
View File
@@ -54,6 +54,7 @@ export type MessagesEventBusDispatch =
export type MessagesEventBusState =
| {
status: MessagesEventBusStatus.Uninitialized
rev: undefined
error: undefined
setPollInterval: (interval: number) => void
trail: (
@@ -62,6 +63,7 @@ export type MessagesEventBusState =
}
| {
status: MessagesEventBusStatus.Initializing
rev: undefined
error: undefined
setPollInterval: (interval: number) => void
trail: (
@@ -70,6 +72,7 @@ export type MessagesEventBusState =
}
| {
status: MessagesEventBusStatus.Ready
rev: string
error: undefined
setPollInterval: (interval: number) => void
trail: (
@@ -78,6 +81,7 @@ export type MessagesEventBusState =
}
| {
status: MessagesEventBusStatus.Suspended
rev: string | undefined
error: undefined
setPollInterval: (interval: number) => void
trail: (
@@ -86,6 +90,7 @@ export type MessagesEventBusState =
}
| {
status: MessagesEventBusStatus.Error
rev: string | undefined
error: MessagesEventBusError
setPollInterval: (interval: number) => void
trail: (