feat: Added error tile for message search list view
This commit is contained in:
@@ -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'),
|
],
|
||||||
),
|
),
|
||||||
],
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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';
|
||||||
|
|||||||
Reference in New Issue
Block a user