ios_app_v2/yobble/Views/Tab/Settings/ChangePasswordView.swift
2025-10-07 00:28:48 +03:00

81 lines
3.1 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import SwiftUI
struct ChangePasswordView: View {
@State private var oldPassword = ""
@State private var newPassword = ""
@State private var confirmPassword = ""
private var isOldPasswordValid: Bool {
return oldPassword.count >= 8 && oldPassword.count <= 128
}
private var isOldPasswordSame: Bool {
return oldPassword == newPassword
}
private var isNewPasswordValid: Bool {
return newPassword.count >= 8 && newPassword.count <= 128
}
private var isPasswordConfirmValid: Bool {
return newPassword == confirmPassword
}
var body: some View {
Form {
Section {
HStack {
SecureField(NSLocalizedString("Старый пароль", comment: "Старый пароль"), text: $oldPassword)
.autocapitalization(.none)
if !oldPassword.isEmpty {
Image(systemName: isOldPasswordValid ? "checkmark.circle" : "xmark.circle")
.foregroundColor(isOldPasswordValid ? .green : .red)
}
}
HStack {
SecureField(NSLocalizedString("Новый пароль", comment: "Новый пароль"), text: $newPassword)
.autocapitalization(.none)
if !newPassword.isEmpty {
let isAllValid = isNewPasswordValid && !isOldPasswordSame
Image(systemName: isAllValid ? "checkmark.circle" : "xmark.circle")
.foregroundColor(isAllValid ? .green : .red)
}
}
HStack {
SecureField(NSLocalizedString("Подтверждение пароля", comment: "Подтверждение пароля"), text: $confirmPassword)
.autocapitalization(.none)
if !confirmPassword.isEmpty {
Image(systemName: isPasswordConfirmValid ? "checkmark.circle" : "xmark.circle")
.foregroundColor(isPasswordConfirmValid ? .green : .red)
}
}
}
var isButtonEnabled: Bool {
isPasswordConfirmValid && !isOldPasswordSame && isNewPasswordValid && isOldPasswordValid
}
Button(action: {
// Действие для сохранения профиля
print("oldPassword: \(oldPassword)")
print("newPassword: \(newPassword)")
print("confirmPassword: \(confirmPassword)")
}) {
Text(NSLocalizedString("Применить", comment: ""))
.background(isButtonEnabled ? Color.blue : Color.gray)
}
.disabled(!isButtonEnabled)
}
.navigationTitle(NSLocalizedString("Изменение пароля", comment: ""))
}
}