UNPKG

antd-mobile

Version:

基于 React 的移动设计规范实现

157 lines (129 loc) 5.68 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = undefined; 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 React = _interopRequireWildcard(_react); var _reactNative = require('react-native'); var _default = require('../style/themes/default'); var _default2 = _interopRequireDefault(_default); var _index = require('./style/index'); var _index2 = _interopRequireDefault(_index); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj["default"] = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var TextAreaItem = function (_React$Component) { (0, _inherits3["default"])(TextAreaItem, _React$Component); function TextAreaItem(props) { (0, _classCallCheck3["default"])(this, TextAreaItem); var _this = (0, _possibleConstructorReturn3["default"])(this, _React$Component.call(this, props)); _this.onChange = function (event) { var text = event.nativeEvent.text; var height = void 0; var _this$props = _this.props; var autoHeight = _this$props.autoHeight; var rows = _this$props.rows; if (autoHeight) { height = event.nativeEvent.contentSize.height; } else if (rows > 1) { height = 6 * rows * 4; } else { height = _default2["default"].list_item_height; } _this.setState({ value: text, inputCount: text.length, height: height }); _this.props.onChange({ text: text }); }; _this.onFocus = function () { _this.props.onFocus(); }; _this.onBlur = function () { _this.props.onBlur(); }; _this.onErrorClick = function () { _this.props.onErrorClick(); }; _this.state = { value: props.value, inputCount: 0, height: props.rows > 1 ? 6 * props.rows * 4 : _default2["default"].list_item_height }; return _this; } TextAreaItem.prototype.render = function render() { var _this2 = this; var inputCount = this.state.inputCount; var _props = this.props; var rows = _props.rows; var error = _props.error; var clear = _props.clear; var count = _props.count; var placeholder = _props.placeholder; var autoHeight = _props.autoHeight; var editable = _props.editable; var last = _props.last; var containerStyle = { borderBottomWidth: last ? 0 : _default2["default"].border_width_sm }; var textareaStyle = { color: error ? '#f50' : _default2["default"].color_text_base, paddingRight: error ? 2 * _default2["default"].h_spacing_lg : 0 }; var maxLength = count > 0 ? count : null; return React.createElement( _reactNative.View, { style: [_index2["default"].container, containerStyle, { position: 'relative' }] }, React.createElement(_reactNative.TextInput, { style: [_index2["default"].input, textareaStyle, { height: Math.max(45, this.state.height) }], onChange: function onChange(event) { return _this2.onChange(event); }, onFocus: this.onFocus, onBlur: this.onBlur, value: this.state.value, placeholder: placeholder, multiline: rows > 1 || autoHeight, numberOfLines: rows, maxLength: maxLength, clearButtonMode: clear ? 'while-editing' : 'never', editable: editable }), error ? React.createElement( _reactNative.TouchableWithoutFeedback, { onPress: this.onErrorClick }, React.createElement( _reactNative.View, { style: [_index2["default"].errorIcon] }, React.createElement(_reactNative.Image, { source: require('../style/images/error.png'), style: { width: _default2["default"].icon_size_xs, height: _default2["default"].icon_size_xs } }) ) ) : null, rows > 1 && count > 0 ? React.createElement( _reactNative.View, { style: [_index2["default"].count] }, React.createElement( _reactNative.Text, null, inputCount, ' / ', count ) ) : null ); }; return TextAreaItem; }(React.Component); exports["default"] = TextAreaItem; TextAreaItem.defaultProps = { onChange: function onChange() {}, onFocus: function onFocus() {}, onBlur: function onBlur() {}, onErrorClick: function onErrorClick() {}, clear: true, error: false, editable: true, rows: 1, value: '', placeholder: '', count: 0, keyboardType: 'default', autoHeight: false, last: false }; module.exports = exports['default'];