search: prioritize friends when autocompleting

Lightning-Address: fishcharlie@strike.me
Closes: https://github.com/damus-io/damus/issues/1620
Signed-off-by: Charlie Fish <contact@charlie.fish>
Reviewed-by: William Casarin <jb55@jb55.com>
Signed-off-by: William Casarin <jb55@jb55.com>
Changelog-Changed: Prioritize friends when autocompleting
This commit is contained in:
Charlie Fish
2024-01-07 13:16:09 -07:00
committed by William Casarin
parent f7946b1a7c
commit eb41846bb9
2 changed files with 19 additions and 2 deletions

View File

@@ -1,5 +1,5 @@
//
// UserAutocompletion.swift
// UserSearch.swift
// damus
//
// Created by William Casarin on 2023-01-28.
@@ -18,7 +18,17 @@ struct UserSearch: View {
var users: [Pubkey] {
let txn = NdbTxn(ndb: damus_state.ndb)
return search_profiles(profiles: damus_state.profiles, search: search, txn: txn)
return search_profiles(profiles: damus_state.profiles, search: search, txn: txn).sorted { a, b in
let aFriendTypePriority = get_friend_type(contacts: damus_state.contacts, pubkey: a)?.priority ?? 0
let bFriendTypePriority = get_friend_type(contacts: damus_state.contacts, pubkey: b)?.priority ?? 0
if aFriendTypePriority > bFriendTypePriority {
// `a` should be sorted before `b`
return true
} else {
return false
}
}
}
func on_user_tapped(pk: Pubkey) {

View File

@@ -10,6 +10,13 @@ import SwiftUI
enum FriendType {
case friend
case fof
var priority: Int {
switch self {
case .friend: return 2
case .fof: return 1
}
}
}
func get_friend_type(contacts: Contacts, pubkey: Pubkey) -> FriendType? {