another.im-ios/AnotherIM/View/Entering/WelcomeScreen.swift

79 lines
2.7 KiB
Swift
Raw Normal View History

2024-06-19 15:15:27 +00:00
import SwiftUI
struct WelcomeScreen: View {
2024-10-15 16:03:16 +00:00
@EnvironmentObject var clientsStore: ClientsStore
@Environment(\.router) var router
2024-06-19 15:15:27 +00:00
var body: some View {
2024-06-19 15:15:27 +00:00
ZStack {
// background
2024-07-04 08:21:12 +00:00
Color.Material.Background.light
2024-06-19 15:15:27 +00:00
.ignoresSafeArea()
2024-10-15 17:47:51 +00:00
if clientsStore.listState == .allDisabled {
VStack {
HStack {
Spacer()
Image(systemName: "gear")
.foregroundColor(.Material.Elements.active)
.tappablePadding(.symmetric(10)) {
router.showScreen(.push) { _ in
SettingsScreen()
2024-10-17 17:20:03 +00:00
.environment(\.settingsParent, .welcome)
.navigationBarHidden(true)
2024-10-15 17:47:51 +00:00
}
}
}
.padding()
Spacer()
}
}
2024-10-15 11:39:23 +00:00
2024-06-19 15:15:27 +00:00
// content
VStack(spacing: 32) {
// icon
Image.logo
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 120, height: 120)
// texts
VStack(spacing: 10) {
Text(L10n.Global.name)
.font(.head1r)
2024-07-04 08:21:12 +00:00
.foregroundColor(.Material.Text.main)
2024-06-19 15:15:27 +00:00
.fixedSize(horizontal: true, vertical: false)
Text(L10n.Start.subtitle)
.font(.body2)
2024-07-04 08:21:12 +00:00
.foregroundColor(.Material.Text.sub)
2024-06-19 15:15:27 +00:00
.fixedSize(horizontal: false, vertical: true)
.multilineTextAlignment(.center)
}
// buttons
VStack(spacing: 16) {
Button {
router.showScreen(.push) { _ in
LoginScreen()
.navigationBarBackButtonHidden(true)
}
2024-06-19 15:15:27 +00:00
} label: {
Text(L10n.Start.Btn.login)
}
.buttonStyle(SecondaryButtonStyle())
Button {
router.showScreen(.push) { _ in
RegistrationScreen()
.navigationBarBackButtonHidden(true)
}
2024-06-19 15:15:27 +00:00
} label: {
Text(L10n.Start.Btn.register)
}
.buttonStyle(PrimaryButtonStyle())
}
}
.padding(.horizontal, 32)
}
}
}