Socket
Socket
Sign inDemoInstall

material-ui-number-input

Package Overview
Dependencies
46
Maintainers
1
Versions
47
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    material-ui-number-input

The better TextField for number inputs.


Version published
Weekly downloads
79
increased by41.07%
Maintainers
1
Install size
196 kB
Created
Weekly downloads
 

Changelog

Source

v5.0.24

Props

  • Removing the unused prop inputMode

Readme

Source

material-ui-number-input

The better TextField for number inputs.

Install

NPM

Changelog

Check Change log for changes.

Properties

NameTypeDefaultTextFieldDescription
childrennode
classNamestringThe css class name of the root element.
disabledboolfalseDisables the input field if set to true.
floatingLabelFixedboolfalseIf true, the floating label will float even when there is no value.
idstringThe id prop for the input field.
namestringName applied to the input.
fullWidthboolfalseIf true, the field receives the property width 100%.
underlineShowbooltrueIf true, shows the underline for the input field.
defaultValuenumberThe number to use for the default value. Must be in range [min, max] if any is setted.
strategy'ignore' | 'warn' | 'allow''allow'Strategy to use when user presses key and when value prop change it's value.
minnumberThe number used as minimum value limit. Must be less than max.
maxnumberThe number used as maximum value limit. Must be greater than min.
requiredboolfalseIf true and if input is left empty than instead of 'clean', 'required' error will be emited throughout onError handler if useStrategy is not 'ignore'.
valuestringThe value of the input field.
onChangefunctionCallback function that is fired when input filed must change it's value. Signature: function(event: React.FormEvent<HTMLInputElement>, value: string) => void.
onErrorfunctionCallback function that is fired when input error status changes and strategy is not 'ignore'. Signature: `function(error: 'none'
onValidfunctionCallback function that is fired when input's value is a valid number. Signature: function(value: number) => void
onRequestValue*functionCallback function that is fired when strategy is 'warn' or 'ignore', input is controlled and an invalid number value is passed. It provides valid number value which needs to be setted. Signature: function(value: string) => void
errorTextnodeThe error content to display.
errorStyleobjectThe style object to use to override error styles.
floatingLabelFocusStyleobjectThe style object to use to override floating label styles when focused.
floatingLabelStyleobjectThe style object to use to override floating label styles.
floatingLabelTextnodeThe content to use for the floating label element.
hintStyleobjectOverride the inline-styles of the TextField's hint text element.
hintTextnodeThe hint content to display.
inputStyleobjectOverride the inline-styles of the TextField's input element. When multiLine is false: define the style of the input element. When multiLine is true: define the style of the container of the textarea.
styleobjectOverride the inline-styles of the root element.
underlineDisabledStyleobjectOverride the inline-styles of the TextField's underline element when disabled.
underlineFocusStyleobjectOverride the inline-styles of the TextField's underline element when focussed.
underlineStyleobjectOverride the inline-styles of the TextField's underline element.

* onRequestValue is required when strategy is 'warn' or 'ignore' and input is controlled in order to ensure correct strategy behaviour.

Strategies

strategyonError firedonRequestValue fired
'allow'
'warn'✓*
'ignore'✓*

* Fired when input is controlled (value is provided). If input is not controlled it's value will be automaticlly corrected when it get's invalid number value.

Errors

'none'

Fired when input's value is valid (there is no error).

'required'

Fired when required prop is true and user leaves empty the input or it gets cleared.

'clean'

Fired when required prop is false and user leaves empty the input or it gets cleared.

'invalidSymbol'

Fired when user enters none special key which is different than -,.,[0-9].

'incompleteNumber'

Fired wehn user enters - as first char in the input or when user enters the first ..

'singleMinus'

Fired when user enters - not as a first char.

'singleFloatingPoint'

Fired when user enters . and there is already one entered.

'singleZero'

Fired when user has entered 0 as first char and enters a digit key.

'min'

Fired when user enters number less than min prop value.

'max'

Fired when user enters number greater than max prop value.

public methods

NumberInput re-exposes public method getInputNode(): HTMLInputElement from TextField.

TextField methods: blur, focus, select and getValue are not exposed as they and getInputNode will be removed in material-ui 0.16 and replaced with public member input which is public and now but getInputNode is prefered until 0.16 is released. If you want to use any of those methods call them on input retunrned from getInputNode with the excpetion of getValue instead use value property.

Example

import * as React from 'react';
import NumberInput from 'material-ui-number-input';

class Demo extends React.Component {
  constructor(props) {
  super(props);
  
  this.onKeyDown = (event) => {
    console.log(`onKeyDown ${event.key}`);
  };
  
  this.onChange = (event, value) => {
    const e = event;
    console.log(`onChange ${e.target.value}, ${value}`);
  };
  
  this.onError = (error) => {
    let errorText;
    console.log(error);
    switch (error) {
      case 'required':
        errorText = 'This field is required';
        break;
      case 'invalidSymbol':
        errorText = 'You are tring to enter none number symbol';
        break;
      case 'incompleteNumber':
        errorText = 'Number is incomplete';
        break;
      case 'singleMinus':
        errorText = 'Minus can be use only for negativity';
        break;
      case 'singleFloatingPoint':
        errorText = 'There is already a floating point';
        break;
      case 'singleZero':
        errorText = 'Floating point is expected';
        break;
      case 'min':
        errorText = 'You are tring to enter number less than -10';
        break;
      case 'max':
          errorText = 'You are tring to enter number greater than 12';
          break;
      }
      this.setState({ errorText: errorText });
    };

    this.onValid = (value) => {
      console.debug(`${value} is a valid number`);
    };

    this.onRequestValue = (value) => {
      console.log(`request ${JSON.stringify(value)}`);
      this.setState({ value: value })
    }
  }
    
  render() {
    const { state, onChange, onError, onKeyDown, onValid, onRequestValue } = this; 
    return (
      <NumberInput
        id="num"
        value={state.value}
        required
        defaultValue={9}
        min={-10}
        max={12}
        strategy="warn"
        errorText={state.errorText}
        onValid={onValid}
        onChange={onChange}
        onError={onError}
        onRequestValue={onRequestValue}
        onKeyDown={onKeyDown} />
    );
  }
}

Written in Typescript and Typescript Ready! (check example)

Supports propTypes for regular JavaScript users

Testing

Tests will be added soon

Contributing

  1. Fork the repository
  2. npm install
  3. npm run typings
  4. Make changes
  5. npm start
  6. open http://localhost:3000
  7. Make a Pull Request

Keywords

FAQs

Last updated on 23 Jul 2017

Did you know?

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc