diff --git a/src/screens/Messages/ConversationSettings/index.tsx b/src/screens/Messages/ConversationSettings/index.tsx
index 32430cfc0c..b83d10bd2d 100644
--- a/src/screens/Messages/ConversationSettings/index.tsx
+++ b/src/screens/Messages/ConversationSettings/index.tsx
@@ -19,9 +19,8 @@ import {
type NavigationProp,
} from '#/lib/routes/types'
import {logger} from '#/logger'
-import {ConvoProvider, isConvoActive, useConvo} from '#/state/messages/convo'
-import {ConvoStatus} from '#/state/messages/convo/types'
import {useModerationOpts} from '#/state/preferences/moderation-opts'
+import {useConvoQuery} from '#/state/queries/messages/conversation'
import {useEditGroupChatName} from '#/state/queries/messages/edit-group-chat-name'
import {useLeaveConvo} from '#/state/queries/messages/leave-conversation'
import {useListConvoMembersQuery} from '#/state/queries/messages/list-convo-members'
@@ -39,6 +38,7 @@ import {ReportConversationDialog} from '#/components/dms/ReportConversationDialo
import {
type ConvoWithDetails,
type GroupConvoMember,
+ parseConvoView,
} from '#/components/dms/util'
import {Error} from '#/components/Error'
import {ArrowBoxLeft_Stroke2_Corner0_Rounded as ArrowBoxLeftIcon} from '#/components/icons/ArrowBoxLeft'
@@ -113,30 +113,33 @@ export function MessagesConversationSettingsScreen({route}: Props) {
-
-
-
+
)
}
-function SettingsInner() {
+function SettingsInner({convoId}: {convoId: string}) {
const {t: l} = useLingui()
- const convoState = useConvo()
const navigation = useNavigation()
const moderationOpts = useModerationOpts()
+ const {currentAccount} = useSession()
+ const {data: convoData, error, refetch} = useConvoQuery({convoId})
- if (convoState.status === ConvoStatus.Error) {
+ const convo = convoData
+ ? parseConvoView(convoData, currentAccount?.did)
+ : null
+
+ if (error) {
return (
convoState.error.retry()}
+ onRetry={() => refetch()}
/>
)
}
- if (!convoState.convo || !moderationOpts) {
+ if (!convo || !moderationOpts) {
return (
@@ -144,7 +147,7 @@ function SettingsInner() {
)
}
- if (convoState.convo.kind !== 'group') {
+ if (convo.kind !== 'group') {
return (
- )
+ return
}
function keyExtractor(item: Item) {
@@ -189,11 +186,9 @@ function isGroupMember(
function GroupSettings({
convo,
moderationOpts,
- isReady,
}: {
convo: Extract
moderationOpts: ModerationOpts
- isReady: boolean
}) {
const [isPTRing, setIsPTRing] = useState(false)
@@ -279,7 +274,7 @@ function GroupSettings({
/>
)
case 'ADD_MEMBERS_LINK':
- return
+ return
case 'CHAT_MEMBER':
return (
}
renderItem={renderItem}
@@ -336,12 +330,10 @@ function SettingsHeader({
convo,
isOwner,
moderationOpts,
- isReady,
}: {
convo: Extract
isOwner: boolean
moderationOpts: ModerationOpts
- isReady: boolean
}) {
const t = useTheme()
const {i18n, t: l} = useLingui()
@@ -516,7 +508,7 @@ function SettingsHeader({
]}>
{isOwner ? (
) : null}