UNPKG

react-native-ui-lib

Version:

UI Components Library for React Native ###### Lateset version support RN44

104 lines (57 loc) 4.49 kB
Object.defineProperty(exports,"__esModule",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _react=require('react');var _react2=_interopRequireDefault(_react); var _reactNative=require('react-native'); var _lodash=require('lodash');var _lodash2=_interopRequireDefault(_lodash); var _style=require('./style');var _style2=_interopRequireDefault(_style); var _commons=require('../../commons'); var _StepperButton=require('./StepperButton');var _StepperButton2=_interopRequireDefault(_StepperButton);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}var Stepper=function(_BaseComponent){_inherits(Stepper,_BaseComponent); function Stepper(props){_classCallCheck(this,Stepper);var _this=_possibleConstructorReturn(this,(Stepper.__proto__||Object.getPrototypeOf(Stepper)).call(this, props)); _this.state={ value:props.initialValue};return _this; }_createClass(Stepper,[{key:'generateStyles',value:function generateStyles() { this.styles=(0,_style2.default)(this.props.size); }},{key:'getLabel',value:function getLabel() { return[this.state.value,this.props.label].join(' '); }},{key:'getDisabledState',value:function getDisabledState() { var minusDisabled=this.state.value===this.props.min; var plusDisabled=this.state.value===this.props.max; return{minusDisabled:minusDisabled,plusDisabled:plusDisabled}; }},{key:'updateValue',value:function updateValue( value){var _this2=this; var newValue=_lodash2.default.max([value,this.props.min]); newValue=_lodash2.default.min([newValue,this.props.max]); if(this.state.value!==newValue){ this.setState({ value:newValue}, function(){ if(_this2.props.onValueChange){ _this2.props.onValueChange(newValue); } }); } }},{key:'render',value:function render() {var _this3=this;var _getDisabledState= this.getDisabledState(),minusDisabled=_getDisabledState.minusDisabled,plusDisabled=_getDisabledState.plusDisabled; return( _react2.default.createElement(_reactNative.View,{style:[this.styles.container,this.props.containerStyle]}, _react2.default.createElement(_reactNative.View,{style:this.styles.title}, _react2.default.createElement(_reactNative.Text,{testID:'label',style:this.styles.titleText},this.getLabel())), _react2.default.createElement(_reactNative.View,{style:this.styles.buttons}, _react2.default.createElement(_StepperButton2.default,{ label:'-', testId:'decrease', styles:this.styles, disabled:minusDisabled, onPress:function onPress(){return _this3.updateValue(_this3.state.value-1);}}), _react2.default.createElement(_reactNative.View,{style:this.styles.separator}), _react2.default.createElement(_StepperButton2.default,{ label:'+', testId:'increase', styles:this.styles, disabled:plusDisabled, onPress:function onPress(){return _this3.updateValue(_this3.state.value+1);}})))); }}]);return Stepper;}(_commons.BaseComponent);Stepper.displayName='Stepper';Stepper.propTypes={label:_react2.default.PropTypes.string,min:_react2.default.PropTypes.number.isRequired,max:_react2.default.PropTypes.number,containerStyle:_react2.default.PropTypes.object,onValueChange:_react2.default.PropTypes.func,initialValue:_react2.default.PropTypes.number.isRequired};exports.default=Stepper;