diff options
author | Samuel Newman <mozzius@protonmail.com> | 2025-01-10 23:35:21 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-10 23:35:21 +0000 |
commit | d7f5ee8415bd6d37a889d395f30b912cb1068e09 (patch) | |
tree | 577afe4b7955a9753e7d321d26aa7cf43720b1cf /src/components/dms | |
parent | 42a44682650598404368ea9d5c734d49bfdbd812 (diff) | |
download | voidsky-d7f5ee8415bd6d37a889d395f30b912cb1068e09.tar.zst |
Conversation-level reporting by reporting most recent message available (#7423)
* report latest message via convo menu * check all messages we have * fix types * rm convo warning
Diffstat (limited to 'src/components/dms')
-rw-r--r-- | src/components/dms/ConvoMenu.tsx | 17 | ||||
-rw-r--r-- | src/components/dms/MessagesListHeader.tsx | 10 |
2 files changed, 26 insertions, 1 deletions
diff --git a/src/components/dms/ConvoMenu.tsx b/src/components/dms/ConvoMenu.tsx index e1f8df10b..ba1d4ee54 100644 --- a/src/components/dms/ConvoMenu.tsx +++ b/src/components/dms/ConvoMenu.tsx @@ -35,6 +35,7 @@ import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/ import * as Menu from '#/components/Menu' import * as Prompt from '#/components/Prompt' import {Bubble_Stroke2_Corner2_Rounded as Bubble} from '../icons/Bubble' +import {ReportDialog} from './ReportDialog' let ConvoMenu = ({ convo: initialConvo, @@ -44,6 +45,7 @@ let ConvoMenu = ({ showMarkAsRead, hideTrigger, blockInfo, + latestReportableMessage, style, }: { convo: ChatBskyConvoDefs.ConvoView @@ -56,6 +58,7 @@ let ConvoMenu = ({ listBlocks: ModerationCause[] userBlock?: ModerationCause } + latestReportableMessage?: ChatBskyConvoDefs.MessageView style?: ViewStyleProp['style'] }): React.ReactNode => { const navigation = useNavigation<NavigationProp>() @@ -222,7 +225,19 @@ let ConvoMenu = ({ convoId={convo.id} currentScreen={currentScreen} /> - <ReportConversationPrompt control={reportControl} /> + {latestReportableMessage ? ( + <ReportDialog + params={{ + type: 'convoMessage', + convoId: convo.id, + message: latestReportableMessage, + }} + control={reportControl} + /> + ) : ( + <ReportConversationPrompt control={reportControl} /> + )} + <BlockedByListDialog control={blockedByListControl} listBlocks={listBlocks} diff --git a/src/components/dms/MessagesListHeader.tsx b/src/components/dms/MessagesListHeader.tsx index acffa0c2b..6ac64a712 100644 --- a/src/components/dms/MessagesListHeader.tsx +++ b/src/components/dms/MessagesListHeader.tsx @@ -151,6 +151,15 @@ function HeaderReady({ moderation.ui('displayName'), ) + const latestMessageFromOther = convoState.items.findLast( + item => item.type === 'message' && item.message.sender.did === profile.did, + ) + + const latestReportableMessage = + latestMessageFromOther?.type === 'message' + ? latestMessageFromOther.message + : undefined + return ( <View style={[a.flex_1]}> <View style={[a.w_full, a.flex_row, a.align_center, a.justify_between]}> @@ -208,6 +217,7 @@ function HeaderReady({ profile={profile} currentScreen="conversation" blockInfo={blockInfo} + latestReportableMessage={latestReportableMessage} /> )} </View> |