3 * Copyright 2016 RIFT.IO Inc
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 import './formControls.scss';
20 import React, {Component} from 'react';
22 export default class TextInput extends Component {
24 let {label, onChange, value, defaultValue, ...props} = this.props;
25 let inputProperties = {
31 if(this.props.required) {
32 isRequired = <span className="required">*</span>
35 inputProperties.defaultValue = defaultValue;
38 inputProperties.pattern = props.pattern;
40 if (value == undefined) {
45 inputType = <textarea {...inputProperties} value={value}/>
49 inputType = <input type={props.type} {...inputProperties} placeholder={props.placeholder}/>;
52 <label className={"sqTextInput " + props.className} style={props.style}>
53 <span> { label } {isRequired}</span>
55 !props.readonly ? inputType : <div className="readonly">{value}</div>
64 TextInput.defaultProps = {
65 onChange: function(e) {
66 console.log(e.target.value);
69 defaultValue: undefined,