import { ChangeEvent, useState } from "react"; interface NumberInputProps { min?: number; max?: number; step?: number; defaultValue?: number; onChange: (value: number) => void; } function NumberInput({ min = 1, max = 100, step = 1, defaultValue = 1, onChange, }: NumberInputProps) { const [value, setValue] = useState(defaultValue); function handleChange(e: ChangeEvent) { let value = +e.target.value; if (value < min) value = min; if (value > max) value = max; setValue(value); onChange(value); } return ( ); } export default NumberInput;