ChatListView.swift 816 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //
  2. // ChatListView.swift
  3. // Chat
  4. //
  5. // Created by Sergey Tarasov on 24.07.2022.
  6. //
  7. import SwiftUI
  8. import XMPPFramework
  9. import XMPPFrameworkSwift
  10. struct ChatListView: View {
  11. @StateObject var viewModel: ChatListViewModel = ChatListViewModel()
  12. var body: some View {
  13. Group {
  14. if viewModel.users.isEmpty {
  15. ProgressView()
  16. } else {
  17. List(viewModel.users.indices, id: \.self) { index in
  18. ChatListCellView(
  19. nickname: viewModel.nicknames[index],
  20. jid: viewModel.users[index].id
  21. )
  22. }
  23. .listStyle(.plain)
  24. }
  25. }
  26. .onAppear {
  27. viewModel.fetchChatList()
  28. }
  29. }
  30. }
  31. struct ChatListView_Previews: PreviewProvider {
  32. static var viewModel: ChatListViewModel = ChatListViewModel()
  33. static var previews: some View {
  34. NavigationView {
  35. ChatListView()
  36. }
  37. }
  38. }