You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
import React from 'react'
|
|
|
|
|
|
|
|
import styles from './styles.module.css'
|
|
|
|
|
|
|
|
export default function Input({_label, error, hint, type, name, value, onChange, onBlur, isValid}){
|
|
|
|
const label = _label || name.replace(name[0], name[0].toUpperCase())
|
|
|
|
|
|
|
|
return (
|
|
|
|
<div className={styles.formElementContainer}>
|
|
|
|
<label htmlFor={name}>{label}:</label>
|
|
|
|
<input className={(isValid && !error)?'':styles.invalid} type={type} name={name} value={value} onChange={onChange} onBlur={onBlur} />
|
|
|
|
{hint && <span className={styles.hint}>{error || (isValid ? '' : hint)}</span>}
|
|
|
|
</div>
|
|
|
|
)
|
|
|
|
}
|