1.0.45 • Published 3 years ago

react-inputin-validator v1.0.45

Weekly downloads
-
License
-
Repository
github
Last release
3 years ago

React компонет и класс для валидирования input-ов

Установка

npm install react-inputin-validator

Подключение основного модуля

import {
    IValidateDataItem,
    Validator as ValidatorClass,
    Inputin,
} from 'react-inputin-validator/dist'

export default function LoginPage() {
    const [email, setEmail] = useState<string>('')
    const [password, setPassword] = useState<string>('')

    const [validateExec, setValidateExec] = useState(false) // флаг для общей валидации

    /**
     * Объект для валидации
     */
    const validateData: IValidateDataItem[] = [
        {
            value: email,
            methods: [
                ValidatorClass.methods.required,
                ValidatorClass.methods.minLength(4),
            ]
        },
        {
            value: password,
            methods: [
                ValidatorClass.methods.required,
                ValidatorClass.methods.maxLength(8),
            ]
        },
    ]

    const Validator = new ValidatorClass(validateData)

    /**
     * Обработчик кнопки войти
     */
    function entryHandler() {
        Validator.allValidate()
        setValidateExec(true)
    }

    /**
     * Обработчки нажатия кнопки
     * @param event
     */
    function keyPressHandler(event: React.KeyboardEvent) {
        if (event.key === 'Enter') entryHandler()
    }

    return (
        <div className="container-fluid d-flex align-items-center justify-content-center">
            <div className="form-login p-3 rounded mt-5 d-flex flex-column col-sm-12 col-12 col-md-6 col-lg-4">
                <h4 className="mb-3">Вход в систему</h4>
                <Inputin
                    type="text"
                    title={<User />}
                    placeholder="Введите email"
                    value={email}
                    onChange={setEmail}
                    validate={validateData[0]}
                    validator={Validator}
                    validateExec={validateExec}
                    onKeyPress={keyPressHandler}
                />
                <Inputin
                    type="password"
                    title={<Lock />}
                    placeholder="Введите пароль"
                    value={password}
                    onChange={setPassword}
                    validate={validateData[1]}
                    validator={Validator}
                    validateExec={validateExec}
                    onKeyPress={keyPressHandler}
                />

                <div className="form-login--btn mt-2 d-flex">
                    <button
                        type="button"
                        className="btn btn-success me-2"
                        onClick={entryHandler}
                    >
                        Войти
                    </button>
                    <button type="button" className="btn btn-outline-danger">
                        Отмена
                    </button>
                </div>
            </div>
        </div>
    )
}

Методы валидации описаны в файле index.d.ts

CSS классы для input

.is-valid {}
.is-invalid {}

.input-group {}
.mb-3 {}
.input-group-text {}
.input-group {}

Описание параметров

Компонент input с валидацией

  • @param title - подпись элемента, может быть компонентом
  • @param placeholder - стандартный placeholder
  • @param type - тип input (text, password ...)
  • @param value - значение
  • @param onChange - метод изменения значения
  • @param validate - объект валидации
  • @param validator - инстанс класса валидации
  • @param validateExec - флаг, который определяет был ли из вне запрос валидации
  • @param onKeyPress - обработчик нажатия кнопки
  • @param isInvalid - параметр для принудительной окраски в валидное или не валидное значение

1.0.44

3 years ago

1.0.43

3 years ago

1.0.42

3 years ago

1.0.45

3 years ago

1.0.4

3 years ago

1.0.41

3 years ago

1.0.35

3 years ago

1.0.34

3 years ago

1.0.33

3 years ago

1.0.32

3 years ago

1.0.31

3 years ago

1.0.3

3 years ago

1.0.231

3 years ago

1.0.23

3 years ago

1.0.22

3 years ago

1.0.21

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago