UNPKG

react-rn-progressor

Version:

A customizable collection of progress indicators for React and React Native

1 lines 4.35 kB
Object.defineProperty(exports,"__esModule",{value:true});var _jsxFileName='src/mobile/Line/Line.js';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 _propTypes=require('prop-types');var _propTypes2=_interopRequireDefault(_propTypes);var _reactNative=require('react-native');var _subcomps=require('./helpers/subcomps');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 UIManager=_reactNative.NativeModules.UIManager;if(UIManager.setLayoutAnimationEnabledExperimental){UIManager.setLayoutAnimationEnabledExperimental(true);}var LineProgressor=function(_React$Component){_inherits(LineProgressor,_React$Component);function LineProgressor(){var _ref;var _temp,_this,_ret;_classCallCheck(this,LineProgressor);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}return _ret=(_temp=(_this=_possibleConstructorReturn(this,(_ref=LineProgressor.__proto__||Object.getPrototypeOf(LineProgressor)).call.apply(_ref,[this].concat(args))),_this),_this.valueInterpolate=function(val){var _this$props$width=_this.props.width,width=_this$props$width===undefined?150:_this$props$width;return val/100*width;},_temp),_possibleConstructorReturn(_this,_ret);}_createClass(LineProgressor,[{key:'componentWillReceiveProps',value:function componentWillReceiveProps(nextProps){var _props=this.props,progress=_props.progress,animDuration=_props.animDuration,animEasing=_props.animEasing;var config={duration:animDuration,update:{type:_reactNative.LayoutAnimation.Types[animEasing]}};if(progress!==nextProps.progress){_reactNative.LayoutAnimation.configureNext(config);}}},{key:'render',value:function render(){var _props2=this.props,progress=_props2.progress,width=_props2.width,height=_props2.height,trackColor=_props2.trackColor,progressColor=_props2.progressColor;var currentProgress=progress;if(currentProgress>100){currentProgress=100;}else if(currentProgress<0){currentProgress=0;}var fillWidth=this.valueInterpolate(currentProgress);return _react2.default.createElement(_subcomps.Container,{style:{width:width,height:height},__source:{fileName:_jsxFileName,lineNumber:61}},_react2.default.createElement(_subcomps.Track,{color:trackColor,style:{width:width,height:height},__source:{fileName:_jsxFileName,lineNumber:63}}),_react2.default.createElement(_subcomps.ProgressTrack,{color:progressColor,style:{width:fillWidth,height:height},__source:{fileName:_jsxFileName,lineNumber:68}}));}}]);return LineProgressor;}(_react2.default.Component);LineProgressor.defaultProps={progress:0,width:200,height:20,animDuration:200,animEasing:'easeInEaseOut',trackColor:'#eee',progressColor:'#8DE969'};LineProgressor.propTypes={progress:_propTypes2.default.number.isRequired,width:_propTypes2.default.number.isRequired,height:_propTypes2.default.number.isRequired,animDuration:_propTypes2.default.number,animEasing:_propTypes2.default.string,trackColor:_propTypes2.default.string,progressColor:_propTypes2.default.string};exports.default=LineProgressor;