Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

LazyRenderBox.js 2.2 KiB

há 3 anos
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. 'use strict';
  2. exports.__esModule = true;
  3. var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
  4. var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
  5. var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
  6. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  7. var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
  8. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  9. var _inherits2 = require('babel-runtime/helpers/inherits');
  10. var _inherits3 = _interopRequireDefault(_inherits2);
  11. var _react = require('react');
  12. var _react2 = _interopRequireDefault(_react);
  13. var _propTypes = require('prop-types');
  14. var _propTypes2 = _interopRequireDefault(_propTypes);
  15. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
  16. var LazyRenderBox = function (_Component) {
  17. (0, _inherits3['default'])(LazyRenderBox, _Component);
  18. function LazyRenderBox() {
  19. (0, _classCallCheck3['default'])(this, LazyRenderBox);
  20. return (0, _possibleConstructorReturn3['default'])(this, _Component.apply(this, arguments));
  21. }
  22. LazyRenderBox.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {
  23. return nextProps.hiddenClassName || nextProps.visible;
  24. };
  25. LazyRenderBox.prototype.render = function render() {
  26. var _props = this.props,
  27. hiddenClassName = _props.hiddenClassName,
  28. visible = _props.visible,
  29. props = (0, _objectWithoutProperties3['default'])(_props, ['hiddenClassName', 'visible']);
  30. if (hiddenClassName || _react2['default'].Children.count(props.children) > 1) {
  31. if (!visible && hiddenClassName) {
  32. props.className += ' ' + hiddenClassName;
  33. }
  34. return _react2['default'].createElement('div', props);
  35. }
  36. return _react2['default'].Children.only(props.children);
  37. };
  38. return LazyRenderBox;
  39. }(_react.Component);
  40. LazyRenderBox.propTypes = {
  41. children: _propTypes2['default'].any,
  42. className: _propTypes2['default'].string,
  43. visible: _propTypes2['default'].bool,
  44. hiddenClassName: _propTypes2['default'].string
  45. };
  46. exports['default'] = LazyRenderBox;
  47. module.exports = exports['default'];