The problem I am having with the below code is that when the user searches for a specific contact and I need to change the list from contacts to searchResults (which contain the same type of CNContact element with unique .identifier, the animation slides the entire list to the right and bring another one from the left. Surprisingly, this doesn't reproduce in iOS 14, so maybe this is a bug with iOS 13.4?
var body: some View {
VStack {
SearchBar(text: $searchViewModel.searchText)
let displayContacts = searchViewModel.searchText.count == 0 ? contacts : searchResults
List {
ForEach(displayContacts, id: \.identifier) { contact in
cellWithContact(contact)
}
}
}
}
@ViewBuilder
private func cellWithContact(_ contact: CNContact) -> some View {
let displayName: String? = CNContactFormatter.string(from: contact, style: .fullName)
HStack() {
Text(displayName ?? "No Name")
Spacer()
Button {
// invite
} label: {
Text("Invite")
}
}
}
