From d22514609c4a4f1bfabfcea66d3716d043a7b68f Mon Sep 17 00:00:00 2001 From: jganenok Date: Mon, 1 Dec 2025 21:51:00 +0700 Subject: [PATCH] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20=D0=B1=D0=B0?= =?UTF-8?q?=D0=B1=D0=BB=20=D1=83=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B1=D0=B5=D0=B7=20=D1=82=D0=B5=D0=BA=D1=81=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/widgets/chat_message_bubble.dart | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/lib/widgets/chat_message_bubble.dart b/lib/widgets/chat_message_bubble.dart index ac97789..1b3822d 100644 --- a/lib/widgets/chat_message_bubble.dart +++ b/lib/widgets/chat_message_bubble.dart @@ -1024,6 +1024,14 @@ class ChatMessageBubble extends StatelessWidget { final messageShadowIntensity = themeProvider.messageShadowIntensity; final messageBorderRadius = themeProvider.messageBorderRadius; + // Сообщение только с файлами (без текста и без reply/forward) + final isFileOnly = + message.attaches.isNotEmpty && + message.attaches.every((a) => a['_type'] == 'FILE') && + message.text.isEmpty && + !message.isReply && + !message.isForwarded; + final bubbleColor = _getBubbleColor(isMe, themeProvider, messageOpacity); final textColor = _getTextColor( isMe, @@ -1031,11 +1039,21 @@ class ChatMessageBubble extends StatelessWidget { messageTextOpacity, context, ); - final bubbleDecoration = _createBubbleDecoration( - bubbleColor, - messageBorderRadius, - messageShadowIntensity, - ); + + // Обычный пузырь, но для сообщений только с файлами делаем фон прозрачным, + // чтобы визуально не было "бабла" вокруг карточек файлов. + BoxDecoration bubbleDecoration; + if (isFileOnly) { + bubbleDecoration = const BoxDecoration( + color: Colors.transparent, + ); + } else { + bubbleDecoration = _createBubbleDecoration( + bubbleColor, + messageBorderRadius, + messageShadowIntensity, + ); + } if (hasUnsupportedContent) { return _buildUnsupportedMessage(