183 lines
5.4 KiB
Swift
183 lines
5.4 KiB
Swift
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 {
|
|
// ChatsCreateRowButton(
|
|
// title: L10n.Chats.Create.Main.createGroup,
|
|
// image: "person.2.fill",
|
|
// action: {}
|
|
// )
|
|
// ChatsCreateRowButton(
|
|
// title: L10n.Chats.Create.Main.createPrivateGroup,
|
|
// image: "person.2.fill",
|
|
// action: {}
|
|
// )
|
|
// ChatsCreateRowButton(
|
|
// title: L10n.Chats.Create.Main.findGroup,
|
|
// image: "magnifyingglass",
|
|
// action: {}
|
|
// )
|
|
|
|
// for contacts list
|
|
let rosters = store.state.rostersState.rosters.filter { !$0.locallyDeleted }
|
|
if rosters.isEmpty {
|
|
ChatsCreateRowSeparator()
|
|
}
|
|
}
|
|
.listStyle(.plain)
|
|
|
|
Spacer()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// private struct ChatsCreateRowButton: View {
|
|
// var title: String
|
|
// var image: String
|
|
// var action: () -> Void
|
|
//
|
|
// var body: some View {
|
|
// VStack(alignment: .center, spacing: 0) {
|
|
// Spacer()
|
|
// HStack(alignment: .center, spacing: 16) {
|
|
// Image(systemName: image)
|
|
// .font(.head2)
|
|
// .foregroundColor(.Material.Elements.active)
|
|
// .padding(.leading, 16)
|
|
// Text(title)
|
|
// .font(.body1)
|
|
// .foregroundColor(.Material.Text.main)
|
|
// Spacer()
|
|
// }
|
|
// Spacer()
|
|
// Rectangle()
|
|
// .frame(maxWidth: .infinity)
|
|
// .frame(height: 1)
|
|
// .foregroundColor(.Material.Background.dark)
|
|
// }
|
|
// .sharedListRow()
|
|
// .frame(height: 48)
|
|
// .onTapGesture {
|
|
// action()
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
private struct ChatsCreateRowSeparator: View {
|
|
var body: some View {
|
|
Text("aa")
|
|
}
|
|
}
|
|
|
|
// 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)
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
|
|
// Preview
|
|
#if DEBUG
|
|
struct ChatsCreateMainScreen_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
ChatsCreateMainScreen(isPresented: .constant(true))
|
|
.environmentObject(pStore)
|
|
}
|
|
|
|
static var pStore: AppStore {
|
|
let state = pState
|
|
return AppStore(initialState: state, reducer: AppState.reducer, middlewares: [])
|
|
}
|
|
|
|
static var pState: AppState {
|
|
var state = AppState()
|
|
|
|
state.rostersState.rosters = [
|
|
.init(contactBareJid: "test@me.com", subscription: "both", ask: true, data: .init(groups: [], annotations: []))
|
|
]
|
|
|
|
return state
|
|
}
|
|
}
|
|
#endif
|