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: "")) } }