import SwiftUI

// 输入框类型枚举（更优雅的方式）
enum TextFieldType {
    case username
    case password
    case number
    case email
    case text
}

struct CustomTextField: View {
    // MARK: - 属性
    let placeholder: String
    let type: TextFieldType
    
    // 双向绑定的值（关键！）
    @Binding var value: String
    
    // MARK: - 主体视图
    var body: some View {
        Group {  // 使用 Group 统一修饰符
            if type == .password {
                // 密码框
                SecureField(placeholder, text: $value)
            } else {
                // 普通文本框
                TextField(placeholder, text: $value)
                    .textInputAutocapitalization(.never)  // 关闭自动大写
                    .disableAutocorrection(true)         // 关闭自动纠错
            }
        }
        .padding()
        .background(Color(.systemGray6))
        .cornerRadius(8)
        .keyboardType(keyboardType(for: type))  // 设置键盘类型
    }
    
    // MARK: - 根据类型返回键盘类型
    private func keyboardType(for type: TextFieldType) -> UIKeyboardType {
        switch type {
        case .number:
            return .numberPad
        case .email:
            return .emailAddress
        default:
            return .default
        }
    }
}
