import React from 'react' import PropTypes from 'prop-types' import { connect } from 'react-redux' import { defineMessages, injectIntl, FormattedMessage } from 'react-intl' import ImmutablePureComponent from 'react-immutable-pure-component' import { openModal } from '../../actions/modal' import { cancelReplyCompose } from '../../actions/compose' import ComposeFormSubmitButton from '../../features/compose/components/compose_form_submit_button' import TimelineComposeBlock from '../timeline_compose_block' import Block from '../block' import Heading from '../heading' import Button from '../button' class ComposeModal extends ImmutablePureComponent { onClickClose = () => { const { composeText, dispatch, onClose, intl, } = this.props if (composeText) { dispatch(openModal('CONFIRM', { title: , message: , confirm: intl.formatMessage(messages.confirm), onConfirm: () => dispatch(cancelReplyCompose()), onCancel: () => dispatch(openModal('COMPOSE')), })) } else { onClose('COMPOSE') } } onHandleSubmit = () => { } render() { const { intl, isEditing, isComment, } = this.props const title = isEditing ? messages.edit : isComment ? messages.comment : messages.title return (
{intl.formatMessage(title)}
) } } const messages = defineMessages({ confirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, title: { id: 'navigation_bar.compose', defaultMessage: 'Compose new gab' }, comment: { id: 'navigation_bar.compose_comment', defaultMessage: 'Compose new comment' }, edit: { id: 'navigation_bar.edit_gab', defaultMessage: 'Edit' }, close: { id: 'lightbox.close', defaultMessage: 'Close' }, }) const mapStateToProps = (state) => { const status = state.getIn(['statuses', state.getIn(['compose', 'id'])]) return { composeText: state.getIn(['compose', 'text']), isEditing: !!status, isComment: !!state.getIn(['compose', 'in_reply_to']), } } ComposeModal.propTypes = { intl: PropTypes.object.isRequired, onClose: PropTypes.func.isRequired, composeText: PropTypes.string, dispatch: PropTypes.func.isRequired, isEditing: PropTypes.bool, isComment: PropTypes.bool, } export default injectIntl(connect(mapStateToProps)(ComposeModal))