From 6e7e32b5354da5f2af27f51c7e90585e4cfe2332 Mon Sep 17 00:00:00 2001 From: Taksh Date: Fri, 31 Jul 2026 19:04:02 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20skip=20in-string=20verified=20=E2=9C=93?= =?UTF-8?q?=20on=20private=20rows=20with=20SF=20Symbol=20seal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- bitchat/ViewModels/ChatMessageFormatter.swift | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/bitchat/ViewModels/ChatMessageFormatter.swift b/bitchat/ViewModels/ChatMessageFormatter.swift index ae663f84..1a00315b 100644 --- a/bitchat/ViewModels/ChatMessageFormatter.swift +++ b/bitchat/ViewModels/ChatMessageFormatter.swift @@ -68,7 +68,10 @@ final class ChatMessageFormatter { suffixStyle.foregroundColor = baseColor.opacity(0.6) result.append(AttributedString(suffix).mergingAttributes(suffixStyle)) } - if isVerifiedSender { + // Private rows render a filled SF Symbol seal beside the lock + // (TextMessageView / MediaMessageView); skip the in-string ✓ there + // so verified DMs don't show two markers. + if isVerifiedSender, !message.isPrivate { appendVerifiedSeal(to: &result, baseColor: baseColor, design: design) } result.append(AttributedString("> ").mergingAttributes(senderStyle)) @@ -388,7 +391,7 @@ final class ChatMessageFormatter { suffixStyle.foregroundColor = baseColor.opacity(0.6) result.append(AttributedString(suffix).mergingAttributes(suffixStyle)) } - if isVerifiedSender { + if isVerifiedSender, !message.isPrivate { appendVerifiedSeal(to: &result, baseColor: baseColor, design: design) } result.append(AttributedString("> ").mergingAttributes(senderStyle))