ChatListView.swift 872 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. @Environment(\.colorScheme) var colorScheme
  12. @StateObject var viewModel: ChatListViewModel = ChatListViewModel()
  13. var body: some View {
  14. Group {
  15. if viewModel.users.isEmpty {
  16. ProgressView()
  17. } else {
  18. List(viewModel.users.indices, id: \.self) { index in
  19. ChatListCellView(
  20. nickname: viewModel.nicknames[index],
  21. jid: viewModel.users[index].jidString
  22. )
  23. }
  24. .listStyle(.plain)
  25. }
  26. }
  27. .onAppear {
  28. viewModel.fetchChatList()
  29. }
  30. }
  31. }
  32. struct ChatListView_Previews: PreviewProvider {
  33. static var viewModel: ChatListViewModel = ChatListViewModel()
  34. static var previews: some View {
  35. NavigationView {
  36. ChatListView()
  37. }
  38. }
  39. }