diff --git a/src/screens/Messages/Conversation/MessageListError.tsx b/src/screens/Messages/Conversation/MessageListError.tsx
index 1e0dc34747..6a6ce5e693 100644
--- a/src/screens/Messages/Conversation/MessageListError.tsx
+++ b/src/screens/Messages/Conversation/MessageListError.tsx
@@ -5,26 +5,25 @@ import {useLingui} from '@lingui/react'
import {ConvoItem, ConvoItemError} from '#/state/messages/convo/types'
import {atoms as a, useTheme} from '#/alf'
-import {Button, ButtonIcon, ButtonText} from '#/components/Button'
-import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as Refresh} from '#/components/icons/ArrowRotateCounterClockwise'
import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo'
+import {InlineLinkText} from '#/components/Link'
import {Text} from '#/components/Typography'
export function MessageListError({item}: {item: ConvoItem & {type: 'error'}}) {
const t = useTheme()
const {_} = useLingui()
- const message = React.useMemo(() => {
+ const {description, help, cta} = React.useMemo(() => {
return {
- [ConvoItemError.Unknown]: _(
- msg`An unknown error occurred. If the issue persists, contact support.`,
- ),
- [ConvoItemError.FirehoseFailed]: _(
- msg`This chat was disconnected due to a network error.`,
- ),
- [ConvoItemError.HistoryFailed]: _(msg`Failed to load past messages.`),
- [ConvoItemError.UserBlocked]: _(
- msg`The other user in this chat has blocked you.`,
- ),
+ [ConvoItemError.FirehoseFailed]: {
+ description: _(msg`This chat was disconnected`),
+ help: _(msg`Press to attempt reconnection`),
+ cta: _(msg`Reconnect`),
+ },
+ [ConvoItemError.HistoryFailed]: {
+ description: _(msg`Failed to load past messages`),
+ help: _(msg`Press to retry`),
+ cta: _(msg`Retry`),
+ },
}[item.code]
}, [_, item.code])
@@ -35,39 +34,31 @@ export function MessageListError({item}: {item: ConvoItem & {type: 'error'}}) {
a.flex_row,
a.align_center,
a.justify_between,
- a.gap_lg,
- a.py_md,
- a.px_lg,
- a.rounded_md,
- t.atoms.bg_contrast_25,
+ a.gap_sm,
+ a.pb_lg,
{maxWidth: 400},
]}>
-
-
-
- {message}
-
-
+
- {item.retry && (
-
- )}
+
+ {description} ·{' '}
+ {item.retry && (
+ {
+ e.preventDefault()
+ item.retry?.()
+ return false
+ }}>
+ {cta}
+
+ )}
+
)
diff --git a/src/screens/Messages/Conversation/MessageListFirehoseError.tsx b/src/screens/Messages/Conversation/MessageListFirehoseError.tsx
deleted file mode 100644
index 63b06c413e..0000000000
--- a/src/screens/Messages/Conversation/MessageListFirehoseError.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-import React from 'react'
-import {View} from 'react-native'
-import {msg} from '@lingui/macro'
-import {useLingui} from '@lingui/react'
-
-import {ConvoItem} from '#/state/messages/convo/types'
-import {atoms as a, useTheme} from '#/alf'
-import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo'
-import {InlineLinkText} from '#/components/Link'
-import {Text} from '#/components/Typography'
-
-export function MessageListFirehoseError({
- item,
-}: {
- item: ConvoItem & {type: 'firehose-error'}
-}) {
- const t = useTheme()
- const {_} = useLingui()
-
- return (
-
-
-
-
-
- {_(msg`This chat was disconnected`)} ·{' '}
- {item.retry && (
- {
- e.preventDefault()
- item.retry?.()
- return false
- }}>
- {_(msg`Reconnect`)}
-
- )}
-
-
-
- )
-}
diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx
index 2fb848cc7b..bb65567a27 100644
--- a/src/screens/Messages/Conversation/MessagesList.tsx
+++ b/src/screens/Messages/Conversation/MessagesList.tsx
@@ -15,7 +15,6 @@ import {isWeb} from 'platform/detection'
import {List} from 'view/com/util/List'
import {MessageInput} from '#/screens/Messages/Conversation/MessageInput'
import {MessageListError} from '#/screens/Messages/Conversation/MessageListError'
-import {MessageListFirehoseError} from '#/screens/Messages/Conversation/MessageListFirehoseError'
import {atoms as a} from '#/alf'
import {MessageItem} from '#/components/dms/MessageItem'
import {Loader} from '#/components/Loader'
@@ -42,8 +41,6 @@ function renderItem({item}: {item: ConvoItem}) {
return Deleted message
} else if (item.type === 'error') {
return
- } else if (item.type === 'firehose-error') {
- return
}
return null
diff --git a/src/state/messages/convo/agent.ts b/src/state/messages/convo/agent.ts
index a0ea7fc18b..7d4ab23f38 100644
--- a/src/state/messages/convo/agent.ts
+++ b/src/state/messages/convo/agent.ts
@@ -1007,8 +1007,9 @@ export class Convo {
if (this.firehoseError) {
items.push({
- type: 'firehose-error',
- key: 'firehose-error',
+ type: 'error',
+ code: ConvoItemError.FirehoseFailed,
+ key: ConvoItemError.FirehoseFailed,
retry: () => {
this.firehoseError?.retry()
},
diff --git a/src/state/messages/convo/types.ts b/src/state/messages/convo/types.ts
index 01b24a2a17..25e79aba6d 100644
--- a/src/state/messages/convo/types.ts
+++ b/src/state/messages/convo/types.ts
@@ -23,10 +23,6 @@ export enum ConvoStatus {
}
export enum ConvoItemError {
- /**
- * Generic error
- */
- Unknown = 'unknown',
/**
* Error connecting to event firehose
*/
@@ -35,10 +31,6 @@ export enum ConvoItemError {
* Error fetching past messages
*/
HistoryFailed = 'historyFailed',
- /**
- * Recipient is blocking the user
- */
- UserBlocked = 'userBlocked',
}
export enum ConvoErrorCode {
@@ -123,14 +115,6 @@ export type ConvoItem =
*/
retry?: () => void
}
- | {
- type: 'firehose-error'
- key: string
- /**
- * If present, error is recoverable.
- */
- retry?: () => void
- }
type DeleteMessage = (messageId: string) => Promise
type SendMessage = (