From bf8630068bc53200deb068fb47588ff834cd9cfc Mon Sep 17 00:00:00 2001 From: Sahil Kumar Date: Fri, 22 Jul 2022 15:34:32 +0530 Subject: [PATCH] fix(ui): substitute mentioned user ids with user names in system message (#1278) Signed-off-by: xsahil03x --- packages/stream_chat_flutter/CHANGELOG.md | 5 ++++- packages/stream_chat_flutter/lib/src/system_message.dart | 9 ++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index 1d0d0bde..4d1b6644 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -3,7 +3,10 @@ 🐞 Fixed - [[#1247]](https://github.com/GetStream/stream-chat-flutter/issues/1247) Fix Jiffy initialization. -- [[#1232]](https://github.com/getstream/stream-chat-flutter/issues/1232) Fix DateDivider not showing up in the chat. +- [[#1232]](https://github.com/getstream/stream-chat-flutter/issues/1232) Fix DateDivider not + showing up in the chat. +- [[#1240]](https://github.com/getstream/stream-chat-flutter/issues/1240) Substitute mentioned user + ids with user names in system message. ## 4.4.0 diff --git a/packages/stream_chat_flutter/lib/src/system_message.dart b/packages/stream_chat_flutter/lib/src/system_message.dart index 1f720db2..6135afc0 100644 --- a/packages/stream_chat_flutter/lib/src/system_message.dart +++ b/packages/stream_chat_flutter/lib/src/system_message.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:stream_chat_flutter/src/extension.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; /// {@macro system_message} @@ -21,16 +22,22 @@ class StreamSystemMessage extends StatelessWidget { /// The function called when tapping on the message /// when the message is not failed + // TODO: Convert it to a simple OnTap instead. final void Function(Message)? onMessageTap; @override Widget build(BuildContext context) { final theme = StreamChatTheme.of(context); + final message = this.message.replaceMentions(); + + final messageText = message.text; + if (messageText == null) return const SizedBox.shrink(); + return GestureDetector( behavior: HitTestBehavior.opaque, onTap: onMessageTap == null ? null : () => onMessageTap!(message), child: Text( - message.text!, + messageText, textAlign: TextAlign.center, softWrap: true, style: theme.textTheme.captionBold.copyWith(