Skip to content

Commit 5351be6

Browse files
feat(ui): Add floating date divider builder. (#2422)
Co-authored-by: Sahil Kumar <[email protected]>
1 parent fe326e7 commit 5351be6

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

packages/stream_chat_flutter/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## Upcoming
2+
3+
✅ Added
4+
5+
- Added `StreamMessageListView.floatingDateDividerBuilder` in order to specifically customize the
6+
floating date divider.
7+
18
## 9.18.0
29

310
🐞 Fixed

packages/stream_chat_flutter/lib/src/message_list_view/message_list_view.dart

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ class StreamMessageListView extends StatefulWidget {
9595
this.threadBuilder,
9696
this.onThreadTap,
9797
this.dateDividerBuilder,
98+
this.floatingDateDividerBuilder,
9899
// we need to use ClampingScrollPhysics to avoid the list view to bounce
99100
// when we are at the either end of the list view and try to use 'animateTo'
100101
// to animate in the same direction.
@@ -241,6 +242,12 @@ class StreamMessageListView extends StatefulWidget {
241242
/// Builder used to render date dividers
242243
final Widget Function(DateTime)? dateDividerBuilder;
243244

245+
/// Builder used to render floating date divider that stays on top while scrolling
246+
/// the message list.
247+
///
248+
/// If null, It will fall back to [dateDividerBuilder] if provided.
249+
final Widget Function(DateTime)? floatingDateDividerBuilder;
250+
244251
/// Index of an item to initially align within the viewport.
245252
final int? initialScrollIndex;
246253

@@ -852,7 +859,10 @@ class _StreamMessageListViewState extends State<StreamMessageListView> {
852859
reverse: widget.reverse,
853860
itemPositionListener: _itemPositionListener.itemPositions,
854861
messages: messages,
855-
dateDividerBuilder: widget.dateDividerBuilder,
862+
dateDividerBuilder: switch (widget.floatingDateDividerBuilder) {
863+
final builder? => builder,
864+
_ => widget.dateDividerBuilder,
865+
},
856866
),
857867
),
858868
if (widget.showScrollToBottom)

0 commit comments

Comments
 (0)