@piplup/rhf-adaptersmui-tel-inputHooks
useMuiTelInputAdapter
Returns adapter props for building custom telephone input integrations with React Hook Form.
Import
import { useMuiTelInputAdapter } from "@piplup/rhf-adapters/mui-tel-input";Usage
import * as React from 'react';import { type Transform } from '@piplup/rhf-core';import { MuiTelInput } from 'mui-tel-input';import { type FieldPath, type FieldValues } from 'react-hook-form';import { type UseMuiTelInputAdapterProps, useMuiTelInputAdapter,} from './adapter';type MuiTelInputProps = React.ComponentProps<typeof MuiTelInput>;export type MuiTelInputElementProps< TTransformedValue extends string, TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,> = Omit< MuiTelInputProps, 'checked' | 'defaultChecked' | 'defaultValue' | 'name' | 'style' | 'value'> & Omit< UseMuiTelInputAdapterProps<TTransformedValue, TFieldValues, TName>, 'composeHelperText' | 'onBlur' | 'onChange' | 'transform' > & { /** * Transformation functions for the field's input and output values. */ transform?: Transform< MuiTelInputProps['onChange'], TTransformedValue, TFieldValues, TName >; };function MuiTelInputComponent< TTransformedValue extends string, TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,>( props: MuiTelInputElementProps<TTransformedValue, TFieldValues, TName>, ref?: MuiTelInputProps['ref'],): React.ReactElement { const { className, control, defaultValue, disabled, disableOnError, disableOnIsSubmitting, error, errorParser, helperText, inputRef, max, maxLength, messages, min, minLength, name, onBlur, onChange, pattern, required, rules, shouldUnregister, style, title, transform, ...rest } = props; const { inputRef: _inputRef, ref: _ref, ...adapter } = useMuiTelInputAdapter( { className, composeHelperText: true, control, defaultValue, disabled, disableOnError, disableOnIsSubmitting, error, errorParser, helperText, inputRef, max, maxLength, messages, min, minLength, name, onBlur, onChange, pattern, required, rules, shouldUnregister, style, title, transform, }, ref, ); return <MuiTelInput {...(rest as MuiTelInputProps)} {...adapter} />;}export const MuiTelInputElement = React.forwardRef( MuiTelInputComponent,) as typeof MuiTelInputComponent & { displayName?: string };MuiTelInputElement.displayName = 'MuiTelInputElement';Props
Prop
Type
Return value
Prop
Type
Notes
- Use this hook when your telephone UI is custom but should still integrate with RHF.
- It builds on
useControllerAdapter.