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: { case MessagesEventBusStatus.Initializing: {
return { return {
status: MessagesEventBusStatus.Initializing, status: MessagesEventBusStatus.Initializing,
rev: undefined,
error: undefined, error: undefined,
setPollInterval: this.setPollInterval, setPollInterval: this.setPollInterval,
trail: this.trail, trail: this.trail,
@@ -84,6 +85,7 @@ export class MessagesEventBus {
case MessagesEventBusStatus.Ready: { case MessagesEventBusStatus.Ready: {
return { return {
status: this.status, status: this.status,
rev: this.latestRev!,
error: undefined, error: undefined,
setPollInterval: this.setPollInterval, setPollInterval: this.setPollInterval,
trail: this.trail, trail: this.trail,
@@ -92,6 +94,7 @@ export class MessagesEventBus {
case MessagesEventBusStatus.Suspended: { case MessagesEventBusStatus.Suspended: {
return { return {
status: this.status, status: this.status,
rev: this.latestRev,
error: undefined, error: undefined,
setPollInterval: this.setPollInterval, setPollInterval: this.setPollInterval,
trail: this.trail, trail: this.trail,
@@ -100,6 +103,7 @@ export class MessagesEventBus {
case MessagesEventBusStatus.Error: { case MessagesEventBusStatus.Error: {
return { return {
status: MessagesEventBusStatus.Error, status: MessagesEventBusStatus.Error,
rev: this.latestRev,
error: this.error || { error: this.error || {
code: MessagesEventBusErrorCode.Unknown, code: MessagesEventBusErrorCode.Unknown,
retry: () => { retry: () => {
@@ -113,6 +117,7 @@ export class MessagesEventBus {
default: { default: {
return { return {
status: MessagesEventBusStatus.Uninitialized, status: MessagesEventBusStatus.Uninitialized,
rev: undefined,
error: undefined, error: undefined,
setPollInterval: this.setPollInterval, setPollInterval: this.setPollInterval,
trail: this.trail, trail: this.trail,
@@ -406,7 +411,11 @@ export class MessagesEventBus {
} }
if (needsEmit) { 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 {AppState} from 'react-native'
import {BskyAgent} from '@atproto-labs/api' import {BskyAgent} from '@atproto-labs/api'
import {isWeb} from '#/platform/detection'
import {MessagesEventBus} from '#/state/messages/events/agent' import {MessagesEventBus} from '#/state/messages/events/agent'
import {MessagesEventBusState} from '#/state/messages/events/types' import {MessagesEventBusState} from '#/state/messages/events/types'
import {useAgent} from '#/state/session' import {useAgent} from '#/state/session'
import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage' import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage'
import {IS_DEV} from '#/env'
const MessagesEventBusContext = const MessagesEventBusContext =
React.createContext<MessagesEventBusState | null>(null) React.createContext<MessagesEventBusState | null>(null)
@@ -36,6 +38,11 @@ export function MessagesEventBusProvider({
) )
const service = React.useSyncExternalStore(bus.subscribe, bus.getSnapshot) const service = React.useSyncExternalStore(bus.subscribe, bus.getSnapshot)
if (isWeb && IS_DEV) {
// @ts-ignore
window.messagesEventBus = service
}
React.useEffect(() => { React.useEffect(() => {
const handleAppStateChange = (nextAppState: string) => { const handleAppStateChange = (nextAppState: string) => {
if (nextAppState === 'active') { if (nextAppState === 'active') {
+5
View File
@@ -54,6 +54,7 @@ export type MessagesEventBusDispatch =
export type MessagesEventBusState = export type MessagesEventBusState =
| { | {
status: MessagesEventBusStatus.Uninitialized status: MessagesEventBusStatus.Uninitialized
rev: undefined
error: undefined error: undefined
setPollInterval: (interval: number) => void setPollInterval: (interval: number) => void
trail: ( trail: (
@@ -62,6 +63,7 @@ export type MessagesEventBusState =
} }
| { | {
status: MessagesEventBusStatus.Initializing status: MessagesEventBusStatus.Initializing
rev: undefined
error: undefined error: undefined
setPollInterval: (interval: number) => void setPollInterval: (interval: number) => void
trail: ( trail: (
@@ -70,6 +72,7 @@ export type MessagesEventBusState =
} }
| { | {
status: MessagesEventBusStatus.Ready status: MessagesEventBusStatus.Ready
rev: string
error: undefined error: undefined
setPollInterval: (interval: number) => void setPollInterval: (interval: number) => void
trail: ( trail: (
@@ -78,6 +81,7 @@ export type MessagesEventBusState =
} }
| { | {
status: MessagesEventBusStatus.Suspended status: MessagesEventBusStatus.Suspended
rev: string | undefined
error: undefined error: undefined
setPollInterval: (interval: number) => void setPollInterval: (interval: number) => void
trail: ( trail: (
@@ -86,6 +90,7 @@ export type MessagesEventBusState =
} }
| { | {
status: MessagesEventBusStatus.Error status: MessagesEventBusStatus.Error
rev: string | undefined
error: MessagesEventBusError error: MessagesEventBusError
setPollInterval: (interval: number) => void setPollInterval: (interval: number) => void
trail: ( trail: (