@@ -7,6 +7,9 @@ import 'package:stream_chat_flutter/src/message_search_item.dart';
|
|||||||
import 'lazy_load_scroll_view.dart';
|
import 'lazy_load_scroll_view.dart';
|
||||||
import 'message_search_bloc.dart';
|
import 'message_search_bloc.dart';
|
||||||
|
|
||||||
|
/// Builder used to create a custom [ListUserItem] from a [User]
|
||||||
|
typedef MessageSearchItemBuilder = Widget Function(BuildContext, Message);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// It shows the list of searched messages.
|
/// It shows the list of searched messages.
|
||||||
///
|
///
|
||||||
@@ -46,7 +49,8 @@ class MessageSearchListView extends StatefulWidget {
|
|||||||
this.emptyBuilder,
|
this.emptyBuilder,
|
||||||
this.errorBuilder,
|
this.errorBuilder,
|
||||||
this.separatorBuilder,
|
this.separatorBuilder,
|
||||||
this.pullToRefresh = true,
|
this.itemBuilder,
|
||||||
|
this.showResultCount = true,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
/// Message String to search on
|
/// Message String to search on
|
||||||
@@ -69,8 +73,8 @@ class MessageSearchListView extends StatefulWidget {
|
|||||||
/// message_limit: how many messages should be included to each channel
|
/// message_limit: how many messages should be included to each channel
|
||||||
final PaginationParams paginationParams;
|
final PaginationParams paginationParams;
|
||||||
|
|
||||||
/// Set it to false to disable the pull-to-refresh widget
|
/// Builder used to create a custom item preview
|
||||||
final bool pullToRefresh;
|
final MessageSearchItemBuilder itemBuilder;
|
||||||
|
|
||||||
/// The builder used when the channel list is empty.
|
/// The builder used when the channel list is empty.
|
||||||
final WidgetBuilder emptyBuilder;
|
final WidgetBuilder emptyBuilder;
|
||||||
@@ -81,6 +85,9 @@ class MessageSearchListView extends StatefulWidget {
|
|||||||
/// Builder used to create a custom item separator
|
/// Builder used to create a custom item separator
|
||||||
final IndexedWidgetBuilder separatorBuilder;
|
final IndexedWidgetBuilder separatorBuilder;
|
||||||
|
|
||||||
|
/// Set it to false to hide total results text
|
||||||
|
final bool showResultCount;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_MessageSearchListViewState createState() => _MessageSearchListViewState();
|
_MessageSearchListViewState createState() => _MessageSearchListViewState();
|
||||||
}
|
}
|
||||||
@@ -101,22 +108,7 @@ class _MessageSearchListViewState extends State<MessageSearchListView> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final messageSearchBloc = MessageSearchBloc.of(context);
|
final messageSearchBloc = MessageSearchBloc.of(context);
|
||||||
|
return _buildListView(messageSearchBloc);
|
||||||
if (!widget.pullToRefresh) {
|
|
||||||
return _buildListView(messageSearchBloc);
|
|
||||||
}
|
|
||||||
|
|
||||||
return RefreshIndicator(
|
|
||||||
onRefresh: () async {
|
|
||||||
return messageSearchBloc.search(
|
|
||||||
filter: widget.filters,
|
|
||||||
sort: widget.sortOptions,
|
|
||||||
query: widget.messageQuery,
|
|
||||||
pagination: widget.paginationParams,
|
|
||||||
);
|
|
||||||
},
|
|
||||||
child: _buildListView(messageSearchBloc),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _separatorBuilder(BuildContext context, int index) {
|
Widget _separatorBuilder(BuildContext context, int index) {
|
||||||
@@ -129,6 +121,9 @@ class _MessageSearchListViewState extends State<MessageSearchListView> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _listItemBuilder(BuildContext context, Message message) {
|
Widget _listItemBuilder(BuildContext context, Message message) {
|
||||||
|
if (widget.itemBuilder != null) {
|
||||||
|
return widget.itemBuilder(context, message);
|
||||||
|
}
|
||||||
return MessageSearchItem(message: message);
|
return MessageSearchItem(message: message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -293,7 +288,7 @@ class _MessageSearchListViewState extends State<MessageSearchListView> {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
if (true) {
|
if (widget.showResultCount) {
|
||||||
child = Column(
|
child = Column(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
|
|||||||
Reference in New Issue
Block a user