import React, { useEffect, useState } from 'react' import classNames from 'classnames' import './index.scss' interface Props extends React.DetailedHTMLProps< React.InputHTMLAttributes, HTMLInputElement > { visible?: string error?: string label?: string } const defaultProps = { visible: 'true', } const Input = React.forwardRef(function Input( props: Props, forwardedRef ) { // States const [inputValue, setInputValue] = useState('') // Classes const classes = classNames({ Input: true }, props.className) const { defaultValue, ...inputProps } = props // Change value when prop updates useEffect(() => { if (props.value) setInputValue(`${props.value}`) }, [props.value]) function handleChange(event: React.ChangeEvent) { setInputValue(event.target.value) if (props.onChange) props.onChange(event) } return ( {props.error && props.error.length > 0 && (

{props.error}

)}
) }) Input.defaultProps = defaultProps export default Input