From a7e29682c1629b443f04998eb20511fb5d2e07b9 Mon Sep 17 00:00:00 2001 From: Jamie Brunton Date: Sat, 3 Jan 2026 10:28:51 +0000 Subject: [PATCH] feat(chat): allow deleting broken or pending secure messages - Add onLongPress prop to MessageContent - Pass delete handler to MessageContent from ChatMessages - Enable long-press on 'Couldn't open secure message' error to show delete options - Enable long-press on 'Secure message' pending state --- .../features/chat/components/ChatMessages.tsx | 1 + .../features/chat/components/MessageContent.tsx | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/apps/mobile/src/features/chat/components/ChatMessages.tsx b/apps/mobile/src/features/chat/components/ChatMessages.tsx index 0b746a3..96a2415 100644 --- a/apps/mobile/src/features/chat/components/ChatMessages.tsx +++ b/apps/mobile/src/features/chat/components/ChatMessages.tsx @@ -56,6 +56,7 @@ export const ChatMessages: React.FC = ({ revealMessage={revealMessage} onImagePress={onImagePress} onVideoFullScreen={onVideoFullScreen} + onLongPress={() => onMessageLongPress(item, isMe)} /> ); diff --git a/apps/mobile/src/features/chat/components/MessageContent.tsx b/apps/mobile/src/features/chat/components/MessageContent.tsx index e298a7c..cbbe95d 100644 --- a/apps/mobile/src/features/chat/components/MessageContent.tsx +++ b/apps/mobile/src/features/chat/components/MessageContent.tsx @@ -24,6 +24,7 @@ export interface MessageContentProps { revealMessage: (id: string) => void; onImagePress: (uri: string) => void; onVideoFullScreen: (uri: string) => void; + onLongPress?: () => void; } export function MessageContent({ @@ -33,6 +34,7 @@ export function MessageContent({ revealMessage, onImagePress, onVideoFullScreen, + onLongPress, }: MessageContentProps) { // Check if message was deleted for everyone if (item.deleted_at) { @@ -304,7 +306,12 @@ export function MessageContent({ const renderText = () => { if (decryptErrorCode === 'E2EE_PENDING_RECIPIENT_KEY') { return ( - + @@ -327,7 +334,12 @@ export function MessageContent({ if (decryptError) { return ( - + Couldn’t open secure message • Tap to retry );