From 1eb6e7daa29a57822ee7f30d833d56bcbd1bdc86 Mon Sep 17 00:00:00 2001 From: Rene Floor Date: Thu, 20 Aug 2026 12:20:38 +0200 Subject: [PATCH] Update separator --- packages/stream_chat_flutter/CHANGELOG.md | 4 ++++ .../message_widget/components/stream_message_header.dart | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index 57a682cfe6..0102462719 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -9,6 +9,10 @@ - Long-pressing a reaction chip no longer opens the message actions modal; the chips always claim the long press. Left unset, `onReactionLongPress` defaults to opening the `ReactionDetailSheet`. - Tapping or long-pressing a reaction chip now opens the `ReactionDetailSheet` pre-filtered to that reaction; it previously opened unfiltered. Clustered and overflow chips map to no single reaction, so they still open unfiltered. +🐞 Fixed + +- Message annotations no longer wrap their label mid-sentence when they don't fit on one line, leaving the action stranded beside the label's last line. The action now moves below the label as a whole — `Replied to a thread · View` becomes `Replied to a thread` above `View` — and the `·` is dropped, since it no longer sits between anything. + 🔄 Changed - Raised minimum Flutter to `>=3.44.0` and Dart SDK to `^3.12.0`. diff --git a/packages/stream_chat_flutter/lib/src/message_widget/components/stream_message_header.dart b/packages/stream_chat_flutter/lib/src/message_widget/components/stream_message_header.dart index 120753b817..3f18cc726a 100644 --- a/packages/stream_chat_flutter/lib/src/message_widget/components/stream_message_header.dart +++ b/packages/stream_chat_flutter/lib/src/message_widget/components/stream_message_header.dart @@ -134,14 +134,15 @@ class DefaultStreamMessageHeader extends core.NullableStatelessWidget { if (message.showInChannel case true) { final listKind = core.StreamMessageLayout.listKindOf(context); final annotationLabel = switch (listKind) { - .channel => '${translations.repliedToThreadAnnotationLabel} ·', - .thread => '${translations.alsoSentInChannelAnnotationLabel} ·', + .channel => translations.repliedToThreadAnnotationLabel, + .thread => translations.alsoSentInChannelAnnotationLabel, }; showInChannelAnnotation = core.StreamMessageAnnotation( onTap: props.onViewChannelTap, leading: Icon(icons.arrowUpRight), label: Text(annotationLabel), + separator: core.StreamMessageAnnotation.separator, trailing: Text(translations.viewLabel), style: .from(trailingTextColor: linkColor), ); @@ -151,7 +152,8 @@ class DefaultStreamMessageHeader extends core.NullableStatelessWidget { if (message.reminder?.remindAt?.toLocal() case final remindAt?) { reminderAnnotation = core.StreamMessageAnnotation( leading: Icon(icons.bell), - label: Text('${translations.reminderSetLabel} ·'), + label: Text(translations.reminderSetLabel), + separator: core.StreamMessageAnnotation.separator, trailing: Text(translations.reminderAtText(Jiffy.parseFromDateTime(remindAt).jm)), ); }