Files
Client/lib/view/pages/talk/search_chat.dart
T
2026-05-08 20:12:40 +02:00

45 lines
1.3 KiB
Dart

import 'package:flutter/material.dart';
import '../../../api/marianumcloud/talk/room/get_room_response.dart';
import 'widgets/chat_tile.dart';
class SearchChat extends SearchDelegate<GetRoomResponseObject?> {
List<GetRoomResponseObject> chats;
SearchChat(this.chats);
@override
List<Widget>? buildActions(BuildContext context) => [
if (query.isNotEmpty)
IconButton(onPressed: () => query = '', icon: const Icon(Icons.delete)),
];
@override
Widget? buildLeading(BuildContext context) => 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);
},
);
}
@override
Widget buildSuggestions(BuildContext context) => buildResults(context);
}