/* eslint-disable */ // @ts-nocheck import { NumberInput, NumberInputProps, ValidatedOptions, } from "../../@patternfly/react-core"; import { Controller, ControllerProps, FieldPath, FieldValues, UseControllerProps, useFormContext, } from "react-hook-form"; import { getRuleValue } from "../utils/getRuleValue"; import { FormLabel } from "./FormLabel"; export type NumberControlOption = { key: string; value: string; }; export type NumberControlProps< T extends FieldValues, P extends FieldPath = FieldPath, > = Omit & UseControllerProps & { name: string; label?: string; labelIcon?: string; controller: Omit; }; export const NumberControl = < T extends FieldValues, P extends FieldPath = FieldPath, >({ name, label, controller, labelIcon, ...rest }: NumberControlProps) => { const { control, formState: { errors }, } = useFormContext(); return ( { const required = !!controller.rules?.required; const min = getRuleValue(controller.rules?.min); const value = field.value ?? controller.defaultValue; const setValue = (newValue: number) => field.onChange( min !== undefined ? Math.max(newValue, Number(min)) : newValue, ); return ( setValue(value + 1)} onMinus={() => setValue(value - 1)} onChange={(event) => { const newValue = Number(event.currentTarget.value); setValue(!isNaN(newValue) ? newValue : controller.defaultValue); }} /> ); }} /> ); };