gab-social/app/javascript/gabsocial/components/account_authorize.js

62 lines
1.6 KiB
JavaScript

import { defineMessages, injectIntl } from 'react-intl'
import ImmutablePureComponent from 'react-immutable-pure-component'
import ImmutablePropTypes from 'react-immutable-proptypes'
import { authorizeFollowRequest, rejectFollowRequest } from '../actions/accounts'
import { makeGetAccount } from '../selectors'
import Account from './account'
const messages = defineMessages({
authorize: { id: 'follow_request.authorize', defaultMessage: 'Authorize' },
reject: { id: 'follow_request.reject', defaultMessage: 'Reject' },
})
const makeMapStateToProps = (state, props) => ({
account: makeGetAccount()(state, props.id),
})
const mapDispatchToProps = (dispatch, { id }) => ({
onAuthorize() {
dispatch(authorizeFollowRequest(id))
},
onReject() {
dispatch(rejectFollowRequest(id))
},
})
export default
@connect(makeMapStateToProps, mapDispatchToProps)
@injectIntl
class AccountAuthorize extends ImmutablePureComponent {
static propTypes = {
account: ImmutablePropTypes.map.isRequired,
intl: PropTypes.object.isRequired,
onAuthorize: PropTypes.func.isRequired,
onReject: PropTypes.func.isRequired,
}
render () {
const {
intl,
account,
onAuthorize,
onReject,
} = this.props
// <Button title={intl.formatMessage(messages.authorize)} icon='check' onClick={onAuthorize} />
// <Button title={intl.formatMessage(messages.reject)} icon='times' onClick={onReject} />
return (
<Account
id={account.get('id')}
dismissAction={onReject}
onActionClick={onAuthorize}
actionIcon='add'
showDismiss
withBio
/>
)
}
}