2020-08-17 15:07:16 -05:00
import React from 'react'
2020-08-17 15:59:29 -05:00
import PropTypes from 'prop-types'
2020-08-17 15:39:25 -05:00
import { connect } from 'react-redux'
2020-06-12 17:55:39 -04:00
import { FormattedMessage } from 'react-intl'
import ImmutablePureComponent from 'react-immutable-pure-component'
import ImmutablePropTypes from 'react-immutable-proptypes'
import { unfollowAccount } from '../../actions/accounts'
import ConfirmationModal from './confirmation_modal'
2020-03-24 00:39:12 -04:00
2020-06-12 17:55:39 -04:00
class UnfollowModal extends ImmutablePureComponent {
2020-03-24 00:39:12 -04:00
handleClick = ( ) => {
this . props . onClose ( )
2020-06-12 17:55:39 -04:00
this . props . onConfirm ( this . props . account . get ( 'id' ) )
2020-03-24 00:39:12 -04:00
}
handleCancel = ( ) => {
this . props . onClose ( )
}
render ( ) {
2020-06-12 17:55:39 -04:00
const { account } = this . props
2020-03-24 00:39:12 -04:00
return (
< ConfirmationModal
2020-06-12 17:55:39 -04:00
title = { ` Unfollow @ ${ account . get ( 'acct' ) } ` }
message = { < FormattedMessage id = 'confirmations.unfollow.message' defaultMessage = 'Are you sure you want to unfollow {name}?' values = { { name : < strong > @ { account . get ( 'acct' ) } < /strong> }} / > }
confirm = { < FormattedMessage id = 'confirmations.unfollow.confirm' defaultMessage = 'Unfollow' / > }
onClose = { this . handleCancel }
onConfirm = { this . handleClick }
2020-03-24 00:39:12 -04:00
/ >
)
}
}
2020-08-18 12:07:47 -05:00
const mapDispatchToProps = ( dispatch ) => ( {
onConfirm ( accountId ) {
dispatch ( unfollowAccount ( accountId ) )
} ,
} )
UnfollowModal . propTypes = {
isSubmitting : PropTypes . bool . isRequired ,
account : ImmutablePropTypes . map . isRequired ,
onConfirm : PropTypes . func . isRequired ,
onClose : PropTypes . func . isRequired ,
}
export default connect ( null , mapDispatchToProps ) ( UnfollowModal )