npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@viewstools/use-masked-input

v2.0.1

Published

A React hook to mask an input using text-mask.

Downloads

12,908

Readme

useMaskedInput

A React hook to mask an input using text-mask.

This component needs React 16.8 or greater because it uses hooks.

Installation

With NPM:

npm install @viewstools/use-masked-input

With Yarn:

yarn add @viewstools/use-masked-input

Usage

import React, { useRef } from 'react'
import useMaskedInput from '@viewstools/use-masked-input'

let PhoneInput = props => {
  let input = useRef(null)

  let onChange = useMaskedInput({
    input,
    mask: ['(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/],
    onChange: props.onChange,
  })

  return <input {...props} ref={input} onChange={onChange} />
}

export default PhoneInput

useMaskedInput takes an object as its parameter and returns an onChange function you need to pass onto your input as a prop. The hook will manage the value of the input.

Here are the possible configuration values:

  • input. Required. A reference created by React.createRef or useRef to the input element rendered by React.
  • mask. Required. An array or a function that defines how the user input is going to be masked. See more.
  • onChange. A function to be called when the input changes.
  • guide. A boolean that tells the component whether to be in guide or no guide mode. See more.
  • keepCharPositions. A boolean that when true, adding or deleting characters affects won't affect the position of other characters, if false, it pushes them. Defaults to false. See more.
  • pipe. A function to modify the conformed value before it is displayed on the screen. See more.
  • placeholderChar. A string representing the fillable spot in the mask. Defaults to an underscore (_). See more.
  • showMask. A boolean that tells the component to display the mask as a placeholder in place of the regular placeholder when the input element value is empty. Defaults to false. See more.
  • value. A string with the value. Defaults to ``.

## Known issues
[There are some known issues on text-mask](https://github.com/text-mask/text-mask/blob/master/componentDocumentation.md#known-issues).

### Supported <input> types
Please note that Text Mask supports input type of text, tel, url, password, and search. Due to a limitation in browser API, other input types, such as email or number, cannot be supported. However, it is normal to let the user enter an email or a number in an input type text combined the appropriate input mask.

License BSD-Clause-3

by UXtemple