import { Tooltip } from '@components/common/form/Tooltip.js'; import { getNestedError } from '@components/common/form/utils/getNestedError.js'; import { _ } from '@evershop/evershop/lib/locale/translate/_'; import React from 'react'; import { useFormContext, RegisterOptions, FieldPath, FieldValues } from 'react-hook-form'; interface RangeFieldProps extends Omit, 'name' | 'type'> { name: FieldPath; label?: string; error?: string; helperText?: string; required?: boolean; validation?: RegisterOptions; showValue?: boolean; defaultValue?: number; wrapperClassName?: string; } export function RangeField({ name, label, error, wrapperClassName, helperText, required, validation, showValue = true, defaultValue, className, min = 0, max = 100, step = 1, ...props }: RangeFieldProps) { const { register, formState: { errors }, watch } = useFormContext(); const fieldError = getNestedError(name, errors, error); const fieldId = `field-${name}`; const value = watch(name) || min; const { valueAsDate, pattern, ...cleanValidation } = validation || {}; const validationRules = { ...cleanValidation, ...(required && { required: _('${field} is required', { field: label || name }) }), valueAsNumber: true } as const; return (
{label && ( )}
{min} {max}
{fieldError && (

{fieldError}

)}
); }