This commit is contained in:
fmodf 2024-08-07 17:13:43 +02:00
parent 05b0b01ede
commit 0eeb8f7b75
4 changed files with 147 additions and 84 deletions

View file

@ -43,6 +43,11 @@
"Chat.title" = "Chat";
"Chat.textfieldPrompt" = "Type a message";
"Chats.Create.Main.title" = "Create";
"Chats.Create.Main.createGroup" = "Create puplic group";
"Chats.Create.Main.createPrivateGroup" = "Create private group";
"Chats.Create.Main.findGroup" = "Find public group";
// MARK: Accounts add screen
"Accounts.Add.or" = "or";
"Accounts.Add.Exist.title" = "Add existing\naccount";

View file

@ -0,0 +1,136 @@
import SwiftUI
struct ChatsCreateMainScreen: View {
@Binding var isPresented: Bool
var body: some View {
ZStack {
// Background color
Color.Material.Background.light
.ignoresSafeArea()
// Content
VStack(spacing: 0) {
// Header
SharedNavigationBar(
leftButton: .init(
image: Image(systemName: "xmark"),
action: {
isPresented = false
}
),
centerText: .init(text: L10n.Chats.Create.Main.title)
)
// List
List {
CreateRoomRowButton(
title: L10n.Chats.Create.Main.createGroup,
image: "person.2.square.stack",
action: {}
)
CreateRoomRowButton(
title: L10n.Chats.Create.Main.createPrivateGroup,
image: "person.2.square.stack",
action: {}
)
CreateRoomRowButton(
title: L10n.Chats.Create.Main.findGroup,
image: "person.2.square.stack",
action: {}
)
}
.listStyle(.plain)
Spacer()
}
}
}
}
private struct CreateRoomRowButton: View {
var title: String
var image: String
var action: () -> Void
var body: some View {
HStack(spacing: 16) {
Image(systemName: image)
.font(.head2)
.foregroundColor(.Material.Elements.active)
.padding(.leading, 16)
Text(title)
.font(.body1)
.foregroundColor(.Material.Text.main)
Spacer()
}
.sharedListRow()
.onTapGesture {
action()
}
}
}
// import SwiftUI
//
// struct CreateConversationMainScreen: View {
// @EnvironmentObject var store: AppStore
//
// var body: some View {
// ZStack {
// // Background color
// Color.Material.Background.light
// .ignoresSafeArea()
//
// // Content
// VStack(spacing: 0) {
// // Header
// CreateConversationHeader()
//
// // Chats list
// // if !store.state.chatsState.chats.isEmpty {
// // List {
// // ForEach(store.state.chatsState.chats) { chat in
// // ChatsRow(chat: chat)
// // }
// // }
// // .listStyle(.plain)
// // .background(Color.Material.Background.light)
// // } else {
// // Spacer()
// // }
// //
// // // Tab bar
// // SharedTabBar()
// }
// }
// }
// }
//
// private struct CreateConversationHeader: View {
// @EnvironmentObject var store: AppStore
//
// var body: some View {
// ZStack {
// // bg
// Color.Material.Background.dark
// .ignoresSafeArea()
//
// HStack(spacing: 0) {
// Image(systemName: "arrow.left")
// .foregroundColor(.Material.Elements.active)
// .padding(.leading, 16)
// .tappablePadding(.symmetric(12)) {
// store.dispatch(.changeFlow(store.state.previousFlow))
// }
// Spacer()
// }
//
// // title
// Text("New conversation")
// .font(.head2)
// .foregroundColor(Color.Material.Text.main)
// }
// }
// }
//

View file

@ -3,6 +3,8 @@ import SwiftUI
struct ChatsListScreen: View {
@EnvironmentObject var store: AppStore
@State private var isCretePanelPresented = false
var body: some View {
ZStack {
// Background color
@ -17,7 +19,7 @@ struct ChatsListScreen: View {
rightButton: .init(
image: Image(systemName: "square.and.pencil"),
action: {
print("Create chat")
isCretePanelPresented = true
}
)
)
@ -39,6 +41,9 @@ struct ChatsListScreen: View {
SharedTabBar()
}
}
.fullScreenCover(isPresented: $isCretePanelPresented) {
ChatsCreateMainScreen(isPresented: $isCretePanelPresented)
}
}
}

View file

@ -1,83 +0,0 @@
import SwiftUI
struct CreateConversationMainScreen: View {
@EnvironmentObject var store: AppStore
var body: some View {
ZStack {
// Background color
Color.Material.Background.light
.ignoresSafeArea()
// Content
VStack(spacing: 0) {
// Header
CreateConversationHeader()
// Chats list
// if !store.state.chatsState.chats.isEmpty {
// List {
// ForEach(store.state.chatsState.chats) { chat in
// ChatsRow(chat: chat)
// }
// }
// .listStyle(.plain)
// .background(Color.Material.Background.light)
// } else {
// Spacer()
// }
//
// // Tab bar
// SharedTabBar()
}
}
}
}
private struct CreateConversationHeader: View {
@EnvironmentObject var store: AppStore
var body: some View {
ZStack {
// bg
Color.Material.Background.dark
.ignoresSafeArea()
HStack(spacing: 0) {
Image(systemName: "arrow.left")
.foregroundColor(.Material.Elements.active)
.padding(.leading, 16)
.tappablePadding(.symmetric(12)) {
store.dispatch(.changeFlow(store.state.previousFlow))
}
Spacer()
}
// title
Text("New conversation")
.font(.head2)
.foregroundColor(Color.Material.Text.main)
}
}
}
private struct CreateRoomRowButton: View {
var title: String
var image: String
var action: () -> Void
var body: some View {
HStack(spacing: 16) {
Image(systemName: image)
.foregroundColor(.Material.Elements.active)
Text(title)
.font(.body)
.foregroundColor(.Material.Text.main)
Spacer()
}
.sharedListRow()
.onTapGesture {
action()
}
}
}