buildResults method
Implementation
@override
Widget buildResults(BuildContext context) {
if (query.length < minLengthToSearch) {
return Column(
children: <Widget>[
Expanded(
child: builder.buildSearchBody(
context,
Center(
child: Text(
sprintf(startSearchText, <dynamic>[minLengthToSearch]),
textAlign: TextAlign.center,
),
),
),
),
builder.buildBottomNavigationBar(context) ?? const SizedBox.shrink(),
],
);
} else {
Map<String, String> newParams = <String, String>{};
if (extraParams.isNotEmpty) {
newParams.addAll(extraParams);
}
if (query.contains('%')) {
query = query.replaceAll('%', '');
}
newParams['t'] = query;
return Column(
children: <Widget>[
Expanded(
child: builder.buildSearchBody(
context,
SafeFutureBuilder<List<W>>(
future: consumer.list(
context,
// TODO(edufolly): Page implementation.
size: itemsPerPage,
extraParams: newParams,
forceOffline: forceOffline,
),
waitingMessage: waitingText,
builder: (BuildContext context, List<W> data, _) =>
data.isNotEmpty
? ListView.separated(
physics: const AlwaysScrollableScrollPhysics(),
padding: const EdgeInsets.all(16),
itemBuilder: (BuildContext context, int index) =>
buildResultItem(
model: data[index],
selected: false,
canDelete: canDelete(data[index]),
onTap: (W entity) => close(context, entity),
afterDeleteRefresh: () async => query += '%',
),
separatorBuilder: (_, _) => const FollyDivider(),
itemCount: data.length,
)
: Center(child: Text(searchListEmpty)),
),
),
),
builder.buildBottomNavigationBar(context) ?? const SizedBox.shrink(),
],
);
}
}