diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index 7acb41b66f..5c5a166ab2 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -1,3 +1,10 @@ +## Upcoming + +✅ Added + +- Added `StreamMessageListView.floatingDateDividerBuilder` in order to specifically customize the + floating date divider. + ## 9.18.0 🐞 Fixed diff --git a/packages/stream_chat_flutter/lib/src/message_list_view/message_list_view.dart b/packages/stream_chat_flutter/lib/src/message_list_view/message_list_view.dart index b273a1acc4..24fcaa3725 100644 --- a/packages/stream_chat_flutter/lib/src/message_list_view/message_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/message_list_view/message_list_view.dart @@ -95,6 +95,7 @@ class StreamMessageListView extends StatefulWidget { this.threadBuilder, this.onThreadTap, this.dateDividerBuilder, + this.floatingDateDividerBuilder, // we need to use ClampingScrollPhysics to avoid the list view to bounce // when we are at the either end of the list view and try to use 'animateTo' // to animate in the same direction. @@ -241,6 +242,12 @@ class StreamMessageListView extends StatefulWidget { /// Builder used to render date dividers final Widget Function(DateTime)? dateDividerBuilder; + /// Builder used to render floating date divider that stays on top while scrolling + /// the message list. + /// + /// If null, It will fall back to [dateDividerBuilder] if provided. + final Widget Function(DateTime)? floatingDateDividerBuilder; + /// Index of an item to initially align within the viewport. final int? initialScrollIndex; @@ -852,7 +859,10 @@ class _StreamMessageListViewState extends State { reverse: widget.reverse, itemPositionListener: _itemPositionListener.itemPositions, messages: messages, - dateDividerBuilder: widget.dateDividerBuilder, + dateDividerBuilder: switch (widget.floatingDateDividerBuilder) { + final builder? => builder, + _ => widget.dateDividerBuilder, + }, ), ), if (widget.showScrollToBottom)