Skip to content
Snippets Groups Projects
Commit 433999d7 authored by Bruno Muniz's avatar Bruno Muniz :apple:
Browse files

Fixed pending contacts searching cell

parent ab1e6079
No related branches found
No related tags found
2 merge requests!54Releasing 1.1.4,!50Search UI 2.0
......@@ -224,6 +224,7 @@ let package = Package(
"Shared",
"Keychain",
"InputField",
"Presentation",
"DependencyInjection",
.product(
name: "Shout",
......
......@@ -54,20 +54,27 @@ final class SearchLeftController: UIViewController {
let contact: Contact
let cell = tableView.dequeueReusableCell(forIndexPath: indexPath, ofType: AvatarCell.self)
let h1Text: String
var h2Text: String?
switch item {
case .stranger(let stranger):
contact = stranger
case .connection(let connection):
contact = connection
}
h1Text = stranger.username ?? ""
let h1Text: String
var h2Text: String?
if stranger.authStatus == .requested {
h2Text = "Request pending"
} else if stranger.authStatus == .requestFailed {
h2Text = "Request failed"
}
h1Text = (contact.nickname ?? contact.username) ?? ""
case .connection(let connection):
contact = connection
h1Text = (connection.nickname ?? contact.username) ?? ""
if let _ = contact.nickname, let username = contact.username {
h2Text = username
if connection.nickname != nil {
h2Text = contact.username ?? ""
}
}
cell.setup(
......
......@@ -17,7 +17,7 @@ class SearchDiffableDataSource: UITableViewDiffableDataSource<SearchSection, Sea
case .stranger:
return ""
case .connections:
return "CONNECTIONS"
return "LOCAL RESULTS"
}
}
}
......@@ -110,21 +110,26 @@ final class SearchLeftViewModel {
}
}
private func appendToLocalSearch(_ contact: Contact?) {
private func appendToLocalSearch(_ user: Contact?) {
var snapshot = SearchSnapshot()
if let contact = contact {
snapshot.appendSections([.stranger])
snapshot.appendItems([.stranger(contact)], toSection: .stranger)
if var user = user {
if let contact = try? session.dbManager.fetchContacts(.init(id: [user.id])).first {
user.authStatus = contact.authStatus
}
if user.authStatus != .friend {
snapshot.appendSections([.stranger])
snapshot.appendItems([.stranger(user)], toSection: .stranger)
}
}
let localsQuery = Contact.Query(text: stateSubject.value.input)
let localsQuery = Contact.Query(text: stateSubject.value.input, authStatus: [.friend])
if let locals = try? session.dbManager.fetchContacts(localsQuery), locals.count > 0 {
// TODO: Remove myself
//
let localsWithoutMe = locals.filter { $0.id != session.myId }
snapshot.appendSections([.connections])
snapshot.appendItems(locals.map(SearchItem.connection), toSection: .connections)
snapshot.appendItems(localsWithoutMe.map(SearchItem.connection), toSection: .connections)
}
stateSubject.value.snapshot = snapshot
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment