2.0.1 • Published 6 years ago
@viewstools/use-masked-input v2.0.1
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-inputWith Yarn:
yarn add @viewstools/use-masked-inputUsage
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 PhoneInputuseMaskedInput 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 byReact.createReforuseRefto theinputelement 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 tofalse. 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 tofalse. 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