66 lines
3.3 KiB
Swift
66 lines
3.3 KiB
Swift
import SwiftUI
|
|
|
|
struct EmailSecuritySettingsView: View {
|
|
@State private var isLoginCodesEnabled = false
|
|
@State private var activeAlert: EmailSecurityAlert?
|
|
|
|
var body: some View {
|
|
Form {
|
|
Section(header: Text(NSLocalizedString("Защита входа", comment: "Раздел защиты входа через email"))) {
|
|
Toggle(NSLocalizedString("Получать коды на email при входе", comment: "Переключатель отправки кодов при входе"), isOn: Binding(
|
|
get: { isLoginCodesEnabled },
|
|
set: { _ in
|
|
activeAlert = EmailSecurityAlert(
|
|
title: NSLocalizedString("Скоро", comment: "Заголовок заглушки"),
|
|
message: NSLocalizedString("Функция пока недоступна.", comment: "Сообщение заглушки")
|
|
)
|
|
isLoginCodesEnabled = false
|
|
}
|
|
))
|
|
|
|
Text(NSLocalizedString("Мы отправим код подтверждения на привязанный email каждый раз при входе.", comment: "Описание работы кодов при входе"))
|
|
.font(.footnote)
|
|
.foregroundColor(.secondary)
|
|
}
|
|
|
|
Section(header: Text(NSLocalizedString("Подтверждение email", comment: "Раздел подтверждения email"))) {
|
|
Text(NSLocalizedString("Email не подтверждён. Подтвердите, чтобы активировать дополнительные проверки.", comment: "Описание необходимости подтверждения email"))
|
|
.font(.callout)
|
|
.foregroundColor(.secondary)
|
|
|
|
Button(NSLocalizedString("Отправить письмо подтверждения", comment: "Кнопка отправки письма подтверждения")) {
|
|
activeAlert = EmailSecurityAlert(
|
|
title: NSLocalizedString("Скоро", comment: "Заголовок заглушки"),
|
|
message: NSLocalizedString("Мы отправим письмо, как только функция будет готова.", comment: "Сообщение при недоступной отправке письма")
|
|
)
|
|
}
|
|
}
|
|
}
|
|
.navigationTitle(NSLocalizedString("Email", comment: "Заголовок экрана настроек email"))
|
|
.navigationBarTitleDisplayMode(.inline)
|
|
.alert(item: $activeAlert) { alert in
|
|
Alert(
|
|
title: Text(alert.title),
|
|
message: Text(alert.message),
|
|
dismissButton: .default(Text(NSLocalizedString("OK", comment: "Общий текст кнопки OK")))
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
private struct EmailSecurityAlert: Identifiable {
|
|
let id = UUID()
|
|
let title: String
|
|
let message: String
|
|
}
|
|
|
|
#if DEBUG
|
|
struct EmailSecuritySettingsView_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
NavigationView {
|
|
EmailSecuritySettingsView()
|
|
}
|
|
}
|
|
}
|
|
#endif
|