// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import ConfirmModal from 'components/confirm_modal.jsx'; import * as ChannelActions from 'actions/channel_actions.jsx'; import ModalStore from 'stores/modal_store.jsx'; import Constants from 'utils/constants.jsx'; import {intlShape, injectIntl, FormattedMessage} from 'react-intl'; import React from 'react'; class LeavePrivateChannelModal extends React.Component { constructor(props) { super(props); this.handleToggle = this.handleToggle.bind(this); this.handleSubmit = this.handleSubmit.bind(this); this.handleHide = this.handleHide.bind(this); this.handleKeyPress = this.handleKeyPress.bind(this); this.state = { show: false, channel: null }; this.mounted = false; } componentDidMount() { this.mounted = true; ModalStore.addModalListener(Constants.ActionTypes.TOGGLE_LEAVE_PRIVATE_CHANNEL_MODAL, this.handleToggle); } componentWillUnmount() { this.mounted = false; ModalStore.removeModalListener(Constants.ActionTypes.TOGGLE_LEAVE_PRIVATE_CHANNEL_MODAL, this.handleToggle); } handleKeyPress(e) { if (e.key === 'Enter' && this.state.show) { this.handleSubmit(); } } handleSubmit() { const channelId = this.state.channel.id; this.setState({ show: false, channel: null }); ChannelActions.leaveChannel(channelId); } handleToggle(value) { this.setState({ channel: value, show: value !== null }); } handleHide() { this.setState({ show: false }); } render() { let title = ''; let message = ''; if (this.state.channel) { title = ( {this.state.channel.display_name} }} /> ); message = ( {this.state.channel.display_name} }} /> ); } const buttonClass = 'btn btn-danger'; const button = ( ); return ( ); } } LeavePrivateChannelModal.propTypes = { intl: intlShape.isRequired }; export default injectIntl(LeavePrivateChannelModal);