rmc-list-view
Version:
m-list-view ui component for react
103 lines (88 loc) • 3.23 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
exports["default"] = _react2["default"].createClass({
displayName: 'RefreshControl',
propTypes: {
className: _react.PropTypes.string,
style: _react.PropTypes.object,
icon: _react.PropTypes.element,
prefixCls: _react.PropTypes.string,
loading: _react.PropTypes.element,
distanceToRefresh: _react.PropTypes.number,
refreshing: _react.PropTypes.bool,
onRefresh: _react.PropTypes.func.isRequired
},
getInitialState: function getInitialState() {
return {
active: false,
loadingState: false
};
},
getDefaultProps: function getDefaultProps() {
return {
prefixCls: 'list-view-refresh-control',
distanceToRefresh: 50,
refreshing: false,
icon: _react2["default"].createElement(
'div',
{ style: { lineHeight: '50px', textAlign: 'center' } },
_react2["default"].createElement(
'div',
{ className: 'list-view-refresh-control-pull' },
'\u2193 \u4E0B\u62C9'
),
_react2["default"].createElement(
'div',
{ className: 'list-view-refresh-control-release' },
'\u2191 \u91CA\u653E'
)
),
loading: _react2["default"].createElement(
'div',
{ style: { lineHeight: '50px', textAlign: 'center' } },
'loading...'
)
};
},
render: function render() {
var _classNames;
var _props = this.props,
prefixCls = _props.prefixCls,
_props$className = _props.className,
className = _props$className === undefined ? '' : _props$className,
style = _props.style,
icon = _props.icon,
loading = _props.loading,
refreshing = _props.refreshing;
var _state = this.state,
active = _state.active,
loadingState = _state.loadingState;
var wrapCls = (0, _classnames2["default"])((_classNames = {}, (0, _defineProperty3["default"])(_classNames, className, className), (0, _defineProperty3["default"])(_classNames, prefixCls + '-ptr', true), (0, _defineProperty3["default"])(_classNames, prefixCls + '-active', active), (0, _defineProperty3["default"])(_classNames, prefixCls + '-loading', loadingState || refreshing), _classNames));
return _react2["default"].createElement(
'div',
{ ref: 'ptr', className: wrapCls, style: style },
_react2["default"].createElement(
'div',
{ className: prefixCls + '-ptr-icon' },
icon
),
_react2["default"].createElement(
'div',
{ className: prefixCls + '-ptr-loading' },
loading
)
);
}
});
module.exports = exports['default'];