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 crypto from 'crypto'; import {FormattedMessage} from 'react-intl'; export default class GeneratedSetting extends React.Component { static get propTypes() { return { id: PropTypes.string.isRequired, label: PropTypes.node.isRequired, placeholder: PropTypes.string, value: PropTypes.string.isRequired, onChange: PropTypes.func.isRequired, disabled: PropTypes.bool.isRequired, disabledText: PropTypes.node, helpText: PropTypes.node.isRequired, regenerateText: PropTypes.node, regenerateHelpText: 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}
); } let regenerateHelpText = null; if (this.props.regenerateHelpText) { regenerateHelpText = (
{this.props.regenerateHelpText}
); } return (
{disabledText}
{this.props.helpText}
{regenerateHelpText}
); } }