0.0.6 • Published 2 years ago

code-input-react v0.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Best input code for react

Current situation with code-input components for React on npm:

  • Some of them use keyCode, which is deprecated and don't work correctly in some mobile browsers
  • Some of them are not controllable. You cannot just set value to whatever you want
  • Some of them don't correctly handle paste event
  • Some of them don't have a blur when the last digit gets filled
  • Some of them don't select previous unfilled digit after the last digit gets filled
  • Some of them have style unnecessary inline object styling
  • Some of them use overhead like styled-components for such a simple component

Give it up! Best input code component for React

DEMO

Basic usage example

import {CodeInputReact} from 'code-input-react';
import 'code-input-react/dist/style.min.css';

const App = () => {
    const [value, setValue] = useState('');
    
    return <CodeInputReact
        length={4}
        value={value}
        onChange={setValue}
        onComplete={(code) => alert(`COMPLETE: ${code}`)}
    />
}

Full usage example

Clone this repo, go to example directory and run yarn install && yarn start.

Check it out live!

  • Play with props in the first story (Customized)
  • See more real-world like example in the second story (DefaultUsage)

Styling

You can import styles from code-input-react/dist/style.min.css, or write your own.

.code-input-react {
    /* container class */
}
.code-input-react--invalid {
    /* invalid container class. appears when <valid> prop is false */
}
.code-input-react--disabled {
    /* disabled container class. appears when <disabled> prop is true */
}
.code-input-react__digit {
    /* input cell class */
}

SMS Autofill

Tested on iOS 14

CodeInputReact Props

PropTypeDescription
lengthnumberDigits count
valuestringCurrent value
onChange(value: string) => voidChange handler
onComplete(value: string) => voidChange handler, invokes only if all digits are filled
disabledbooleanDisabled flag
validbooleanValid flag
autoFocusbooleanFocus first digit on mount flag
type'number' | 'text'Digit type. Any text symbols or numbers
focusOnInvalidbooleanFocus on first digit when valid becomes false, so user can fill out again
innerRefMutableRefObject<CodeInputReactRef | null>Ref to control input outside
classNamestringContainer className

CodeInputReactRef

export type CodeInputReactRef = {
  /** Focus n-th digit. */
  focus: (nth?: number) => void;
  /** Use it if you need access for input */
  inputs: Array<HTMLInputElement | null>;
};

CHANGELOG

0.0.1 20.07.2022

  • Initial release

0.0.2 20.07.2022

  • Fix export

0.0.3 20.07.2022

  • Add new API

0.0.4 20.07.2022

  • Change default valid param
  • Add usage example

0.0.5 20.07.2022

  • Add sms autofill
  • Update example

0.0.6 07.08.2022

  • Update readme
0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago