UNPKG

antd

Version:

An enterprise-class UI design language and React-based implementation

163 lines (122 loc) 5.83 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = undefined; var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray'); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactDom = require('react-dom'); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _isCssAnimationSupported = require('../_util/isCssAnimationSupported'); var _isCssAnimationSupported2 = _interopRequireDefault(_isCssAnimationSupported); var _splitObject3 = require('../_util/splitObject'); var _splitObject4 = _interopRequireDefault(_splitObject3); var _omit = require('omit.js'); var _omit2 = _interopRequireDefault(_omit); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Spin = function (_React$Component) { (0, _inherits3["default"])(Spin, _React$Component); function Spin(props) { (0, _classCallCheck3["default"])(this, Spin); var _this = (0, _possibleConstructorReturn3["default"])(this, _React$Component.call(this, props)); var spinning = props.spinning; _this.state = { spinning: spinning }; return _this; } Spin.prototype.isNestedPattern = function isNestedPattern() { return !!(this.props && this.props.children); }; Spin.prototype.componentDidMount = function componentDidMount() { if (!(0, _isCssAnimationSupported2["default"])()) { // Show text in IE8/9 (0, _reactDom.findDOMNode)(this).className += ' ' + this.props.prefixCls + '-show-text'; } }; Spin.prototype.componentWillUnmount = function componentWillUnmount() { if (this.debounceTimeout) { clearTimeout(this.debounceTimeout); } }; Spin.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { var _this2 = this; var currentSpinning = this.props.spinning; var spinning = nextProps.spinning; if (this.debounceTimeout) { clearTimeout(this.debounceTimeout); } if (currentSpinning && !spinning) { this.debounceTimeout = setTimeout(function () { return _this2.setState({ spinning: spinning }); }, 500); } else { this.setState({ spinning: spinning }); } }; Spin.prototype.render = function render() { var _classNames; var _splitObject = (0, _splitObject4["default"])(this.props, ['className', 'size', 'prefixCls', 'tip']), _splitObject2 = (0, _slicedToArray3["default"])(_splitObject, 2), _splitObject2$ = _splitObject2[0], className = _splitObject2$.className, size = _splitObject2$.size, prefixCls = _splitObject2$.prefixCls, tip = _splitObject2$.tip, restProps = _splitObject2[1]; var spinning = this.state.spinning; var spinClassName = (0, _classnames2["default"])((_classNames = {}, (0, _defineProperty3["default"])(_classNames, prefixCls, true), (0, _defineProperty3["default"])(_classNames, prefixCls + '-sm', size === 'small'), (0, _defineProperty3["default"])(_classNames, prefixCls + '-lg', size === 'large'), (0, _defineProperty3["default"])(_classNames, prefixCls + '-spinning', spinning), (0, _defineProperty3["default"])(_classNames, prefixCls + '-show-text', !!this.props.tip), (0, _defineProperty3["default"])(_classNames, className, !!className), _classNames)); // fix https://fb.me/react-unknown-prop var divProps = (0, _omit2["default"])(restProps, ['spinning']); var spinElement = _react2["default"].createElement( 'div', (0, _extends3["default"])({}, divProps, { className: spinClassName }), _react2["default"].createElement('span', { className: prefixCls + '-dot' }), tip ? _react2["default"].createElement( 'div', { className: prefixCls + '-text' }, tip ) : null ); if (this.isNestedPattern()) { return _react2["default"].createElement( 'div', (0, _extends3["default"])({}, divProps, { className: spinning ? prefixCls + '-nested-loading' : '' }), spinElement, _react2["default"].createElement( 'div', { className: prefixCls + '-container' }, this.props.children ) ); } return spinElement; }; return Spin; }(_react2["default"].Component); exports["default"] = Spin; Spin.defaultProps = { prefixCls: 'ant-spin', spinning: true, size: 'default' }; Spin.propTypes = { prefixCls: _react.PropTypes.string, className: _react.PropTypes.string, spinning: _react.PropTypes.bool, size: _react.PropTypes.oneOf(['small', 'default', 'large']) }; module.exports = exports['default'];