@@ -569,7 +569,6 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
569569
570570 Widget _buildListView (BuildContext context) {
571571 const centerSliverKey = ValueKey ('center sliver' );
572- final zulipLocalizations = ZulipLocalizations .of (context);
573572
574573 // The list has two slivers: a top sliver growing upward,
575574 // and a bottom sliver growing downward.
@@ -611,7 +610,7 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
611610 (context, childIndex) {
612611 final itemIndex = totalItems - 1 - (childIndex + bottomItems);
613612 final data = model.items[itemIndex];
614- final item = _buildItem (zulipLocalizations, data);
613+ final item = _buildItem (data);
615614 return item;
616615 }));
617616
@@ -657,7 +656,7 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
657656
658657 final itemIndex = topItems + childIndex;
659658 final data = model.items[itemIndex];
660- return _buildItem (zulipLocalizations, data);
659+ return _buildItem (data);
661660 }));
662661
663662 if (! ComposeBox .hasComposeBox (widget.narrow)) {
@@ -689,18 +688,12 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
689688 ]);
690689 }
691690
692- Widget _buildItem (ZulipLocalizations zulipLocalizations, MessageListItem data) {
691+ Widget _buildItem (MessageListItem data) {
693692 switch (data) {
694693 case MessageListHistoryStartItem ():
695- return Center (
696- child: Padding (
697- padding: const EdgeInsets .symmetric (vertical: 16.0 ),
698- child: Text (zulipLocalizations.noEarlierMessages))); // TODO use an icon
694+ return const _MessageListHistoryStart ();
699695 case MessageListLoadingItem ():
700- return const Center (
701- child: Padding (
702- padding: EdgeInsets .symmetric (vertical: 16.0 ),
703- child: CircularProgressIndicator ())); // TODO perhaps a different indicator
696+ return const _MessageListLoadingMore ();
704697 case MessageListRecipientHeaderItem ():
705698 final header = RecipientHeader (message: data.message, narrow: widget.narrow);
706699 return StickyHeaderItem (allowOverflow: true ,
@@ -721,6 +714,31 @@ class _MessageListState extends State<MessageList> with PerAccountStoreAwareStat
721714 }
722715}
723716
717+ class _MessageListHistoryStart extends StatelessWidget {
718+ const _MessageListHistoryStart ();
719+
720+ @override
721+ Widget build (BuildContext context) {
722+ final zulipLocalizations = ZulipLocalizations .of (context);
723+ return Center (
724+ child: Padding (
725+ padding: const EdgeInsets .symmetric (vertical: 16.0 ),
726+ child: Text (zulipLocalizations.noEarlierMessages))); // TODO use an icon
727+ }
728+ }
729+
730+ class _MessageListLoadingMore extends StatelessWidget {
731+ const _MessageListLoadingMore ();
732+
733+ @override
734+ Widget build (BuildContext context) {
735+ return const Center (
736+ child: Padding (
737+ padding: EdgeInsets .symmetric (vertical: 16.0 ),
738+ child: CircularProgressIndicator ())); // TODO perhaps a different indicator
739+ }
740+ }
741+
724742class ScrollToBottomButton extends StatelessWidget {
725743 const ScrollToBottomButton ({super .key, required this .scrollController, required this .visible});
726744
0 commit comments