diff --git a/packages/stream_chat_flutter/lib/src/channel_name.dart b/packages/stream_chat_flutter/lib/src/channel_name.dart index 1cc510af..2cd804c9 100644 --- a/packages/stream_chat_flutter/lib/src/channel_name.dart +++ b/packages/stream_chat_flutter/lib/src/channel_name.dart @@ -12,11 +12,15 @@ class ChannelName extends StatelessWidget { const ChannelName({ Key? key, this.textStyle, + this.textOverflow = TextOverflow.ellipsis, }) : super(key: key); /// The style of the text displayed final TextStyle? textStyle; + /// How visual overflow should be handled. + final TextOverflow textOverflow; + @override Widget build(BuildContext context) { final client = StreamChat.of(context); @@ -37,12 +41,14 @@ class ChannelName extends StatelessWidget { ) => LayoutBuilder( builder: (context, constraints) { - String? title; + var title = 'No title'; if (extraData['name'] == null) { final otherMembers = members?.where((member) => member.userId != client.user!.id); if (otherMembers?.length == 1) { - title = otherMembers!.first.user?.name; + if (otherMembers!.first.user != null) { + title = otherMembers.first.user!.name; + } } else if (otherMembers?.isNotEmpty == true) { final maxWidth = constraints.maxWidth; final maxChars = maxWidth / (textStyle?.fontSize ?? 1); @@ -61,17 +67,15 @@ class ChannelName extends StatelessWidget { otherMembers.length - currentMembers.length; title = '${currentMembers.map((e) => e.user?.name).join(', ')} ' '${exceedingMembers > 0 ? '+ $exceedingMembers' : ''}'; - } else { - title = 'No title'; } } else { title = extraData['name']; } return Text( - title!, + title, style: textStyle, - overflow: TextOverflow.ellipsis, + overflow: textOverflow, ); }, );