import { ChangeEvent, InputHTMLAttributes, useState } from 'react'; import FormField from '~/components/common/form/_form_field'; import FormFieldError from '~/components/common/form/_form_field_error'; import Input from '~/components/common/form/_input'; interface InputProps extends Omit, 'onChange'> { label: string; name: string; value?: string; errors?: string[]; onChange?: (name: string, value: string) => void; } export default function TextBox({ name, label, value = '', errors = [], onChange, required = false, ...props }: InputProps): JSX.Element { const [inputValue, setInputValue] = useState(value); function _onChange({ target }: ChangeEvent) { setInputValue(target.value); if (onChange) { onChange(target.name, target.value); } } return ( {errors.length > 0 && errors.map((error) => {error})} ); }