'use client' import {useFormContext} from 'react-hook-form' import {Minus, Plus} from 'lucide-react' import {FormField} from '@/components/ui/form' import {Button} from '@/components/ui/button' import {Input} from '@/components/ui/input' import {PurchaseFormValues} from './form-values' type PurchaseStepperFieldName = 'quota' | 'daily_limit' type NumberStepperFieldProps = { name: PurchaseStepperFieldName label: string min: number step: number } export function NumberStepperField(props: NumberStepperFieldProps) { const form = useFormContext() const setValue = (value: number) => { form.setValue(props.name, value) } return ( className="space-y-4" name={props.name} label={props.label} > {({id, field}) => { const value = Number(field.value) || props.min return (
{ field.onBlur() const nextValue = Number(event.target.value) if (nextValue < props.min) { setValue(props.min) } }} />
) }} ) }