Client/lib/view/pages/talk/searchChat.dart

41 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
import '../../../api/marianumcloud/talk/room/getRoomResponse.dart';
import 'chatTile.dart';
class SearchChat extends SearchDelegate {
List<GetRoomResponseObject> chats;
SearchChat(this.chats);
@override
List<Widget>? buildActions(BuildContext context) {
return [
if(query.isNotEmpty) IconButton(onPressed: () => query = "", icon: const Icon(Icons.delete)),
];
}
@override
Widget? buildLeading(BuildContext context) {
return null;
}
@override
Widget buildResults(BuildContext context) {
var items = chats.where(
(e) => e.displayName.toString().toLowerCase().contains(query.toLowerCase()) || e.name.toString().toLowerCase().contains(query.toLowerCase())
).toList()..sort((a, b) => b.lastActivity.compareTo(a.lastActivity));
return ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) {
var item = items.elementAt(index);
return ChatTile(data: item, disableContextActions: true, query: ({bool renew = true}) {});
},
);
}
@override
Widget buildSuggestions(BuildContext context) {
return buildResults(context);
}
}