import SwiftUI

public struct CharacterLimitedTextField: View {
    let placeholder: String
    @Binding var text: String
    let axis: Axis
    let characterLimit: Int

    public init(
        placeholder: String = "",
        text: Binding<String>,
        axis: Axis = .horizontal,
        characterLimit: Int
    ) {
        self.placeholder = placeholder
        self._text = text
        self.axis = axis
        self.characterLimit = characterLimit
    }

    public var body: some View {
        TextField(placeholder, text: $text, axis: axis)
            .onChange(of: text) { _, newValue in
                if newValue.count > characterLimit {
                    text = String(newValue.prefix(characterLimit))
                }
            }
    }
}
