Skip to content

Commit 09d3351

Browse files
committed
autocomplete: Add "recent DM conversations" criterion
In @-mention autocomplete, users are suggested based on: 1. Recent DM conversations. Fixes part of zulip#228
1 parent 2b825ab commit 09d3351

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

lib/model/autocomplete.dart

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,13 +267,34 @@ class MentionAutocompleteView extends ChangeNotifier {
267267

268268
List<User>? _sortedUsers;
269269

270-
List<User> sortByRelevance({required List<User> users}) {
270+
int compareByRelevance({
271+
required User userA,
272+
required User userB,
273+
}) {
274+
final dmPrecedence = store.recentDmConversationsView.compareByDms(userA, userB);
275+
return dmPrecedence;
276+
}
277+
278+
List<User> sortByRelevance({
279+
required List<User> users,
280+
required Narrow narrow,
281+
}) {
282+
switch (narrow) {
283+
case StreamNarrow():
284+
case TopicNarrow():
285+
case DmNarrow():
286+
users.sort((userA, userB) => compareByRelevance(
287+
userA: userA,
288+
userB: userB));
289+
case AllMessagesNarrow():
290+
// do nothing in this case for now
291+
}
271292
return users;
272293
}
273294

274295
void _sortUsers() {
275296
final users = store.users.values.toList();
276-
_sortedUsers = sortByRelevance(users: users);
297+
_sortedUsers = sortByRelevance(users: users, narrow: narrow);
277298
}
278299

279300
Future<List<MentionAutocompleteResult>?> _computeResults(MentionAutocompleteQuery query) async {

0 commit comments

Comments
 (0)