forked from GeekyAnts/NativeBase
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathTextarea.js
More file actions
53 lines (48 loc) · 1.39 KB
/
Textarea.js
File metadata and controls
53 lines (48 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import React, { Component } from "react";
import PropTypes from "prop-types";
import { TextInput } from "react-native";
import { connectStyle } from "native-base-shoutem-theme";
import variables from "../theme/variables/platform";
import computeProps from "../utils/computeProps";
import mapPropsToStyleNames from "../utils/mapPropsToStyleNames";
class Textarea extends Component {
getStyle() {
return {
textarea: {
height: this.props.rowSpan ? this.props.rowSpan * 25 : 60,
},
};
}
prepareRootProps() {
const defaultProps = {
style: this.getStyle().textarea,
};
return computeProps(this.props, defaultProps);
}
render() {
return (
<TextInput
ref={c => {
this._textInput = c;
this._root = c;
}}
{...this.prepareRootProps()}
multiline
placeholderTextColor={
this.props.placeholderTextColor ? this.props.placeholderTextColor : variables.inputColorPlaceholder
}
underlineColorAndroid="rgba(0,0,0,0)"
editable={this.props.disabled ? false : true}
/>
);
}
}
Textarea.propTypes = {
...TextInput.propTypes,
style: PropTypes.oneOfType([PropTypes.object, PropTypes.number, PropTypes.array]),
rowSpan: PropTypes.number,
bordered: PropTypes.bool,
underline: PropTypes.bool,
};
const StyledTextarea = connectStyle("NativeBase.Textarea", {}, mapPropsToStyleNames)(Textarea);
export { StyledTextarea as Textarea };