UNPKG

zent

Version:

一套前端设计语言和基于React的实现

135 lines (99 loc) 4.3 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); 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 _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var Switch = function (_ref) { (0, _inherits3['default'])(Switch, _ref); function Switch() { var _ref2; var _temp, _this, _ret; (0, _classCallCheck3['default'])(this, Switch); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _ret = (_temp = (_this = (0, _possibleConstructorReturn3['default'])(this, (_ref2 = Switch.__proto__ || Object.getPrototypeOf(Switch)).call.apply(_ref2, [this].concat(args))), _this), _this.toggle = function () { var _this$props = _this.props, onChange = _this$props.onChange, checked = _this$props.checked; onChange(!checked); }, _temp), (0, _possibleConstructorReturn3['default'])(_this, _ret); } // 处理点击时间,直接执行外部onChange方法 (0, _createClass3['default'])(Switch, [{ key: 'getInnerText', value: function getInnerText() { return this.props.checked ? this.props.checkedText : this.props.uncheckedText; } // render span 标签 }, { key: 'renderSwitch', value: function renderSwitch(classNames) { var disabled = this.props.disabled || this.props.loading; var textClassName = this.props.prefix + '-switch-inner'; return _react2['default'].createElement( 'span', { className: classNames, onClick: disabled ? null : this.toggle }, _react2['default'].createElement( 'span', { className: textClassName }, this.getInnerText() ) ); } }, { key: 'render', value: function render() { var _setClass; var _props = this.props, className = _props.className, size = _props.size, disabled = _props.disabled, loading = _props.loading, prefix = _props.prefix, checked = _props.checked; var classNames = (0, _classnames2['default'])((_setClass = {}, (0, _defineProperty3['default'])(_setClass, prefix + '-switch-' + size, size !== 'default'), (0, _defineProperty3['default'])(_setClass, prefix + '-switch-disabled', disabled), (0, _defineProperty3['default'])(_setClass, prefix + '-switch-loading', loading), (0, _defineProperty3['default'])(_setClass, prefix + '-switch-checked', checked), _setClass), prefix + '-switch', className); return this.renderSwitch(classNames); } }]); return Switch; }(_react.PureComponent || _react.Component); Switch.propTypes = { size: _propTypes2['default'].oneOf(['large', 'default', 'small']), prefix: _propTypes2['default'].string, className: _propTypes2['default'].string, disabled: _propTypes2['default'].bool, checked: _propTypes2['default'].bool, loading: _propTypes2['default'].bool, onChange: _propTypes2['default'].func, checkedText: _propTypes2['default'].any, uncheckedText: _propTypes2['default'].any }; Switch.defaultProps = { size: 'default', prefix: 'zent', className: '', disabled: false, loading: false, checked: false, onChange: function onChange() {}, checkedText: '开启', uncheckedText: '关闭' }; exports['default'] = Switch;