@piplup/rhf-adaptersreact-number-formatHooks
usePatternFormatAdapter
Returns adapter props for building custom PatternFormat integrations with React Hook Form.
Import
import { usePatternFormatAdapter } from "@piplup/rhf-adapters/react-number-format";Usage
import * as React from 'react';import { type Transform } from '@piplup/rhf-core';import { type FieldPath, type FieldValues } from 'react-hook-form';import { PatternFormat, type PatternFormatProps } from 'react-number-format';import { type UsePatternFormatAdapterProps, usePatternFormatAdapter,} from './adapter';export interface PatternFormatElementProps< TTransformedValue extends null | number | string | undefined, TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,> extends Omit< PatternFormatProps, 'defaultValue' | 'name' | 'pattern' | 'style' >, Omit< UsePatternFormatAdapterProps<TTransformedValue, TFieldValues, TName>, 'onBlur' | 'onValueChange' > { /** * Transformation functions for the field's input and output values. */ transform?: Transform< PatternFormatProps['onValueChange'], TTransformedValue, TFieldValues, TName >;}function PatternFormatComponent< TTransformedValue extends null | number | string | undefined, TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,>( props: PatternFormatElementProps<TTransformedValue, TFieldValues, TName>,): React.ReactElement { const { classes, className, composeClassName = true, composeHelperText = false, control, defaultValue, disabled, disableOnError, disableOnIsSubmitting, error, errorParser, getInputRef, helperText, max, maxLength, messages, min, minLength, name, onBlur, onValueChange, pattern, required, rules, shouldUnregister, style, transform, type, ...rest } = props; const adapter = usePatternFormatAdapter({ classes, className, composeClassName, composeHelperText, control, defaultValue, disabled, disableOnError, disableOnIsSubmitting, error, errorParser, getInputRef, helperText, max, maxLength, messages, min, minLength, name, onBlur, onValueChange, pattern, required, rules, shouldUnregister, style, transform, type, }); return <PatternFormat {...rest} {...adapter} />;}export const PatternFormatElement = PatternFormatComponent as typeof PatternFormatComponent & { displayName?: string; };PatternFormatElement.displayName = 'PatternFormatElement';Props
Prop
Type
Return value
Prop
Type
Notes
- Use this hook for custom masked or pattern-based inputs that still integrate with
react-hook-form. - It builds on
useNumberFormatBaseAdapter.