77 lines
3.4 KiB
Swift
77 lines
3.4 KiB
Swift
import SwiftUI
|
|
|
|
struct SecuritySettingsView: View {
|
|
@ObservedObject var viewModel: LoginViewModel
|
|
@State private var isTwoFactorActive = false
|
|
@State private var isEmailSettingsActive = false
|
|
@State private var isAppLockActive = false
|
|
|
|
var body: some View {
|
|
List {
|
|
Section(header: Text(NSLocalizedString("Вход и защита аккаунта (заглушка)", comment: "Раздел настроек безопасности для аутентификации"))) {
|
|
NavigationLink(isActive: $isTwoFactorActive) {
|
|
TwoFactorAuthView()
|
|
} label: {
|
|
Label(NSLocalizedString("Двухфакторная аутентификация", comment: "Переход к настройкам двухфакторной аутентификации"), systemImage: "lock.shield")
|
|
}
|
|
|
|
NavigationLink(isActive: $isEmailSettingsActive) {
|
|
EmailSecuritySettingsView()
|
|
} label: {
|
|
Label(NSLocalizedString("Настройки email", comment: "Переход к настройкам безопасности email"), systemImage: "envelope")
|
|
}
|
|
|
|
NavigationLink(isActive: $isAppLockActive) {
|
|
AppLockSettingsView()
|
|
} label: {
|
|
Label(NSLocalizedString("Пароль на приложение", comment: "Переход к настройкам пароля на приложение"), systemImage: "lock.square")
|
|
}
|
|
}
|
|
|
|
Section(header: Text(NSLocalizedString("Приватность и контроль", comment: ""))) {
|
|
|
|
NavigationLink(destination: EditPrivacyView()) {
|
|
Label(NSLocalizedString("Конфиденциальность", comment: ""), systemImage: "lock.fill")
|
|
}
|
|
|
|
NavigationLink(destination: ChangePasswordView()) {
|
|
Label(NSLocalizedString("Сменить пароль", comment: ""), systemImage: "key")
|
|
}
|
|
NavigationLink(destination: ActiveSessionsView()) {
|
|
Label(NSLocalizedString("Активные сессии", comment: ""), systemImage: "iphone")
|
|
}
|
|
|
|
}
|
|
}
|
|
.listStyle(.insetGrouped)
|
|
.navigationTitle(NSLocalizedString("Безопасность", comment: "Заголовок экрана настроек безопасности"))
|
|
.navigationBarTitleDisplayMode(.inline)
|
|
// .onAppear { handleSecuritySettingsOnboardingIfNeeded() }
|
|
// .onChange(of: viewModel.onboardingDestination) { _ in
|
|
// handleSecuritySettingsOnboardingIfNeeded()
|
|
// }
|
|
}
|
|
|
|
// private func handleSecuritySettingsOnboardingIfNeeded() {
|
|
// guard viewModel.onboardingDestination == .securitySettings else { return }
|
|
// guard !isTwoFactorActive else {
|
|
// viewModel.onboardingDestination = nil
|
|
// return
|
|
// }
|
|
// DispatchQueue.main.async {
|
|
// isTwoFactorActive = true
|
|
// viewModel.onboardingDestination = nil
|
|
// }
|
|
// }
|
|
}
|
|
|
|
#if DEBUG
|
|
struct SecuritySettingsView_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
NavigationView {
|
|
SecuritySettingsView(viewModel: LoginViewModel())
|
|
}
|
|
}
|
|
}
|
|
#endif
|