ios_app_v2/yobble/Views/Tab/Settings/SecuritySettingsView.swift
2025-10-24 11:13:47 +03:00

51 lines
2.2 KiB
Swift

import SwiftUI
struct SecuritySettingsView: View {
@ObservedObject var viewModel: LoginViewModel
@State private var isTwoFactorActive = false
@State private var isEmailSettingsActive = false
var body: some View {
List {
Section(header: Text(NSLocalizedString("Аутентификация", comment: "Раздел настроек безопасности для аутентификации"))) {
NavigationLink(isActive: $isTwoFactorActive) {
TwoFactorAuthView()
} label: {
Label(NSLocalizedString("Двухфакторная аутентификация", comment: "Переход к настройкам двухфакторной аутентификации"), systemImage: "lock.shield")
}
}
Section(header: Text(NSLocalizedString("Email", comment: "Раздел настроек безопасности для email"))) {
NavigationLink(isActive: $isEmailSettingsActive) {
EmailSecuritySettingsView()
} label: {
Label(NSLocalizedString("Настройки email", comment: "Переход к настройкам безопасности email"), systemImage: "envelope")
}
}
}
.listStyle(.insetGrouped)
.navigationTitle(NSLocalizedString("Безопасность", comment: "Заголовок экрана настроек безопасности"))
.navigationBarTitleDisplayMode(.inline)
.onAppear { handleTwoFactorOnboardingIfNeeded() }
.onChange(of: viewModel.onboardingDestination) { _ in
handleTwoFactorOnboardingIfNeeded()
}
}
private func handleTwoFactorOnboardingIfNeeded() {
guard viewModel.onboardingDestination == .twoFactor else { return }
isTwoFactorActive = true
viewModel.onboardingDestination = nil
}
}
#if DEBUG
struct SecuritySettingsView_Previews: PreviewProvider {
static var previews: some View {
NavigationView {
SecuritySettingsView(viewModel: LoginViewModel())
}
}
}
#endif