1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-06-20 08:45:17 +00:00

Can search for users

This commit is contained in:
2021-04-25 17:43:51 +02:00
parent fae18f0abd
commit 8e8a3c711d
2 changed files with 77 additions and 5 deletions

View File

@ -0,0 +1,53 @@
import 'package:comunic/lists/users_list.dart';
import 'package:comunic/models/user.dart';
import 'package:comunic/ui/widgets/account_image_widget.dart';
import 'package:flutter/material.dart';
/// Search for users
///
/// @author Pierre Hubert
Future<User> searchUser(BuildContext context, UsersList users) async {
return await showSearch<User>(
context: context, delegate: _SearchDelegate(users));
}
class _SearchDelegate extends SearchDelegate<User> {
final UsersList _usersList;
_SearchDelegate(this._usersList) : assert(_usersList != null);
@override
List<Widget> buildActions(BuildContext context) => null;
@override
Widget buildLeading(BuildContext context) => IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () => this.close(context, null),
);
@override
Widget buildSuggestions(BuildContext context) {
final list = _usersList
.where((element) =>
element.fullName.toLowerCase().contains(query.toLowerCase()))
.toList();
return ListView.builder(
itemCount: list.length,
itemBuilder: (c, i) {
final e = list[i];
return ListTile(
title: Text(e.fullName),
leading: AccountImageWidget(user: e),
onTap: () {
query = e.fullName;
close(context, e);
},
);
});
}
@override
Widget buildResults(BuildContext context) => Container();
}