New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

use-mask-input

Package Overview
Dependencies
Maintainers
1
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

use-mask-input

A react Hook for build elegant input masks. Compatible with React Hook Form

latest
Source
npmnpm
Version
3.9.0
Version published
Weekly downloads
63K
2.42%
Maintainers
1
Weekly downloads
 
Created
Source

🥸 use-mask-input

Input masks for React. Works with React Hook Form, TanStack Form, Ant Design, and plain inputs.

npm npm downloads bundle size codecov

ko-fi

Documentation · API Reference · TanStack Form · Sponsor

Install

npm install use-mask-input

Usage

import { useMaskInput } from 'use-mask-input';

function PhoneInput() {
  const ref = useMaskInput({ mask: '(99) 99999-9999' });
  return <input ref={ref} />;
}

With React Hook Form

import { useForm } from 'react-hook-form';
import { useHookFormMask } from 'use-mask-input';

function MyForm() {
  const { register, handleSubmit } = useForm();
  const registerWithMask = useHookFormMask(register);

  return (
    <form onSubmit={handleSubmit(console.log)}>
      <input {...registerWithMask('phone', '(99) 99999-9999')} />
      <input {...registerWithMask('email', 'email')} />
      <button type="submit">Submit</button>
    </form>
  );
}

With TanStack Form

import { useForm } from '@tanstack/react-form';
import { useTanStackFormMask } from 'use-mask-input';

function MyForm() {
  const maskField = useTanStackFormMask();
  const form = useForm({
    defaultValues: {
      phone: '',
    },
    onSubmit: async ({ value }) => {
      console.log(value);
    },
  });

  return (
    <form
      onSubmit={(event) => {
        event.preventDefault();
        event.stopPropagation();
        void form.handleSubmit();
      }}
    >
      <form.Field name="phone">
        {(field) => {
          const inputProps = maskField(
            '(99) 99999-9999',
            {
              name: field.name,
              value: field.state.value,
              onBlur: field.handleBlur,
              onChange: (event) => field.handleChange(event.target.value),
            },
          );

          return <input {...inputProps} placeholder="(00) 00000-0000" />;
        }}
      </form.Field>
    </form>
  );
}

With Ant Design

import { Input } from 'antd';
import { useMaskInputAntd } from 'use-mask-input/antd';

function EmailInput() {
  const ref = useMaskInputAntd({ mask: 'email' });
  return <Input ref={ref} />;
}

APIs

APIDescription
useMaskInputHook. Returns a ref callback. Default choice.
useHookFormMaskHook. Wraps React Hook Form's register.
useTanStackFormMaskHook. Adds mask to TanStack Form field input props.
withMaskFunction. Ref callback. Requires React.memo.
withHookFormMaskFunction. Mask for registered fields. Requires React.memo.
withTanStackFormMaskFunction. Mask for TanStack input props. Requires React.memo.
useMaskInputAntdHook. useMaskInput for Ant Design.
useHookFormMaskAntdHook. useHookFormMask for Ant Design.

Built-in Aliases

cpf · cnpj · br-bank-account · br-bank-agency · currency · brl-currency · datetime · email · numeric · decimal · integer · percentage · url · ip · mac · ssn

Works With

  • TanStack Form (useTanStackFormMask, withTanStackFormMask). See the TanStack Form guide.
  • React Hook Form
  • Ant Design (use-mask-input/antd)
  • React Final Form
  • Next.js / SSR

License

MIT

FAQs

Package last updated on 25 Mar 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts