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( ...@@ -224,6 +224,7 @@ let package = Package(
"Shared", "Shared",
"Keychain", "Keychain",
"InputField", "InputField",
"Presentation",
"DependencyInjection", "DependencyInjection",
.product( .product(
name: "Shout", name: "Shout",
......
...@@ -54,20 +54,27 @@ final class SearchLeftController: UIViewController { ...@@ -54,20 +54,27 @@ final class SearchLeftController: UIViewController {
let contact: Contact let contact: Contact
let cell = tableView.dequeueReusableCell(forIndexPath: indexPath, ofType: AvatarCell.self) let cell = tableView.dequeueReusableCell(forIndexPath: indexPath, ofType: AvatarCell.self)
let h1Text: String
var h2Text: String?
switch item { switch item {
case .stranger(let stranger): case .stranger(let stranger):
contact = stranger contact = stranger
case .connection(let connection): h1Text = stranger.username ?? ""
contact = connection
}
let h1Text: String if stranger.authStatus == .requested {
var h2Text: String? 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 { if connection.nickname != nil {
h2Text = username h2Text = contact.username ?? ""
}
} }
cell.setup( cell.setup(
......
...@@ -17,7 +17,7 @@ class SearchDiffableDataSource: UITableViewDiffableDataSource<SearchSection, Sea ...@@ -17,7 +17,7 @@ class SearchDiffableDataSource: UITableViewDiffableDataSource<SearchSection, Sea
case .stranger: case .stranger:
return "" return ""
case .connections: case .connections:
return "CONNECTIONS" return "LOCAL RESULTS"
} }
} }
} }
...@@ -110,21 +110,26 @@ final class SearchLeftViewModel { ...@@ -110,21 +110,26 @@ final class SearchLeftViewModel {
} }
} }
private func appendToLocalSearch(_ contact: Contact?) { private func appendToLocalSearch(_ user: Contact?) {
var snapshot = SearchSnapshot() var snapshot = SearchSnapshot()
if let contact = contact { if var user = user {
snapshot.appendSections([.stranger]) if let contact = try? session.dbManager.fetchContacts(.init(id: [user.id])).first {
snapshot.appendItems([.stranger(contact)], toSection: .stranger) 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 { 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.appendSections([.connections])
snapshot.appendItems(locals.map(SearchItem.connection), toSection: .connections) snapshot.appendItems(localsWithoutMe.map(SearchItem.connection), toSection: .connections)
} }
stateSubject.value.snapshot = snapshot 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