import PropTypes from 'prop-types'; // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import React from 'react'; import Setting from './setting.jsx'; import Constants from 'utils/constants.jsx'; export default class TextSetting extends React.Component { static get propTypes() { return { id: PropTypes.string.isRequired, label: PropTypes.node.isRequired, placeholder: PropTypes.string, helpText: PropTypes.node, value: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]).isRequired, maxLength: PropTypes.number, onChange: PropTypes.func, disabled: PropTypes.bool, type: PropTypes.oneOf([ 'input', 'textarea' ]) }; } static get defaultProps() { return { type: 'input', maxLength: Constants.MAX_TEXTSETTING_LENGTH }; } constructor(props) { super(props); this.handleChange = this.handleChange.bind(this); } handleChange(e) { this.props.onChange(this.props.id, e.target.value); } render() { let input = null; if (this.props.type === 'input') { input = ( ); } else if (this.props.type === 'textarea') { input = (