// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import React from 'react'; import crypto from 'crypto'; import {FormattedMessage} from 'react-intl'; export default class GeneratedSetting extends React.Component { static get propTypes() { return { id: React.PropTypes.string.isRequired, label: React.PropTypes.node.isRequired, placeholder: React.PropTypes.string, value: React.PropTypes.string.isRequired, onChange: React.PropTypes.func.isRequired, disabled: React.PropTypes.bool.isRequired, disabledText: React.PropTypes.node, helpText: React.PropTypes.node.isRequired, regenerateText: React.PropTypes.node }; } static get defaultProps() { return { disabled: false, regenerateText: ( ) }; } constructor(props) { super(props); this.regenerate = this.regenerate.bind(this); } regenerate(e) { e.preventDefault(); this.props.onChange(this.props.id, crypto.randomBytes(256).toString('base64').substring(0, 32)); } render() { let disabledText = null; if (this.props.disabled && this.props.disabledText) { disabledText = (
{this.props.disabledText}
); } return (
{disabledText}
{this.props.helpText}
); } }