feat: Added error tile for message search list view

This commit is contained in:
Deven Joshi
2021-01-12 21:24:46 +05:30
parent fad38a513a
commit 3e1766940a
2 changed files with 44 additions and 33 deletions
+43 -33
View File
@@ -2,6 +2,7 @@ import 'dart:convert';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:stream_chat/stream_chat.dart'; import 'package:stream_chat/stream_chat.dart';
import 'package:stream_chat_flutter/src/info_tile.dart';
import 'package:stream_chat_flutter/src/message_search_item.dart'; import 'package:stream_chat_flutter/src/message_search_item.dart';
import '../stream_chat_flutter.dart'; import '../stream_chat_flutter.dart';
@@ -63,6 +64,7 @@ class MessageSearchListView extends StatefulWidget {
this.onItemTap, this.onItemTap,
this.showResultCount = true, this.showResultCount = true,
this.pullToRefresh = true, this.pullToRefresh = true,
this.showErrorTile = false,
}) : super(key: key); }) : super(key: key);
/// Message String to search on /// Message String to search on
@@ -111,6 +113,8 @@ class MessageSearchListView extends StatefulWidget {
/// Set it to false to disable the pull-to-refresh widget /// Set it to false to disable the pull-to-refresh widget
final bool pullToRefresh; final bool pullToRefresh;
final bool showErrorTile;
@override @override
_MessageSearchListViewState createState() => _MessageSearchListViewState(); _MessageSearchListViewState createState() => _MessageSearchListViewState();
} }
@@ -205,41 +209,47 @@ class _MessageSearchListViewState extends State<MessageSearchListView> {
message = 'Check your connection and retry'; message = 'Check your connection and retry';
} }
} }
return Center( return InfoTile(
child: Column( showMessage: widget.showErrorTile,
mainAxisAlignment: MainAxisAlignment.center, tileAnchor: Alignment.topCenter,
children: <Widget>[ childAnchor: Alignment.topCenter,
Text.rich( message: 'An error occurred.',
TextSpan( child: Center(
children: [ child: Column(
WidgetSpan( mainAxisAlignment: MainAxisAlignment.center,
child: Padding( children: <Widget>[
padding: const EdgeInsets.only(right: 2.0), Text.rich(
child: Icon(Icons.error_outline), TextSpan(
children: [
WidgetSpan(
child: Padding(
padding: const EdgeInsets.only(right: 2.0),
child: Icon(Icons.error_outline),
),
), ),
), TextSpan(text: 'Error loading messages'),
TextSpan(text: 'Error loading messages'), ],
], ),
style: Theme.of(context).textTheme.headline6,
), ),
style: Theme.of(context).textTheme.headline6, Padding(
), padding: const EdgeInsets.only(top: 16.0),
Padding( child: Text(message),
padding: const EdgeInsets.only(top: 16.0), ),
child: Text(message), RaisedButton(
), onPressed: () {
RaisedButton( messageSearchBloc.search(
onPressed: () { filter: widget.filters,
messageSearchBloc.search( sort: widget.sortOptions,
filter: widget.filters, query: widget.messageQuery,
sort: widget.sortOptions, pagination: widget.paginationParams,
query: widget.messageQuery, messageFilter: widget.messageFilters,
pagination: widget.paginationParams, );
messageFilter: widget.messageFilters, },
); child: Text('Retry'),
}, ),
child: Text('Retry'), ],
), ),
],
), ),
); );
} }
+1
View File
@@ -46,3 +46,4 @@ export 'src/unread_indicator.dart';
export 'src/option_list_tile.dart'; export 'src/option_list_tile.dart';
export 'src/channel_file_display_screen.dart'; export 'src/channel_file_display_screen.dart';
export 'src/channel_media_display_screen.dart'; export 'src/channel_media_display_screen.dart';
export 'src/info_tile.dart';