import React, { useState, useEffect } from 'react' import { FormStoreType, FormFields } from '../../../store' import { observer } from 'mobx-react' import clsx from 'clsx' interface NumberInputProps extends Omit, 'name'> { name: keyof T formStore: FormStoreType className?: string } const NumberInput = observer( ({ name, formStore, className, ...rest }: NumberInputProps) => { const [inputValue, setInputValue] = useState(formStore.fields[name] || 0) useEffect(() => { setInputValue(formStore.fields[name] || 0) }, [formStore.fields[name], name]) const handleInputChange = (e: React.ChangeEvent) => { const newValue = Number(e.target.value) setInputValue(newValue) formStore.setField(name, newValue as unknown as T[keyof T]) } const inputClassName = clsx('w-full border p-2 text-black', className) return (
{formStore.errors[name] && ( {formStore.errors[name]} )}
) }, ) export default NumberInput