conversations-classic-ios/ConversationsClassic/View/Main/ChatList/ChatsListScreen.swift
2024-08-13 10:40:27 +02:00

80 lines
2.6 KiB
Swift

import SwiftUI
struct ChatsListScreen: View {
@EnvironmentObject var clientsStore: ClientsStore
var body: some View {
ZStack {
// Background color
Color.Material.Background.light
.ignoresSafeArea()
// Content
VStack(spacing: 0) {
// Header
SharedNavigationBar(
centerText: .init(text: L10n.ChatsList.title),
rightButton: .init(
image: Image(systemName: "square.and.pencil"),
action: {
// isCretePanelPresented = true
}
)
)
// Chats list
if !clientsStore.actualChats.isEmpty {
List {
ForEach(clientsStore.actualChats) { chat in
ChatsRow(chat: chat)
}
}
.listStyle(.plain)
.background(Color.Material.Background.light)
} else {
Spacer()
}
}
}
// .fullScreenCover(isPresented: $isCretePanelPresented) {
// ChatsCreateMainScreen(isPresented: $isCretePanelPresented)
// }
}
}
private struct ChatsRow: View {
@Environment(\.router) var router
@EnvironmentObject var clientsStore: ClientsStore
var chat: Chat
var body: some View {
SharedListRow(iconType: .charCircle(chat.participant), text: chat.participant)
.onTapGesture {
// Task {
// router.showModal {
// LoadingScreen()
// }
// defer {
// router.dismissModal()
// }
//
// do {
// let conversation = try await clientsStore.conversationStore(for: roster)
// router.showScreen(.push) { _ in
// ConversationScreen(conversation: conversation)
// }
// } catch {
// router.showAlert(
// .alert,
// title: L10n.Global.Error.title,
// subtitle: L10n.Conversation.startError
// ) {
// Button(L10n.Global.ok, role: .cancel) {}
// }
// }
// }
}
}
}