import React from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import ImmutablePureComponent from 'react-immutable-pure-component'; import ImmutablePropTypes from 'react-immutable-proptypes'; import IconButton from '../../../components/icon_button'; import { defineMessages, injectIntl } from 'react-intl'; import { removeFromAntennaAdder, addToAntennaAdder } from '../../../actions/antennas'; import Icon from 'mastodon/components/icon'; const messages = defineMessages({ remove: { id: 'lists.account.remove', defaultMessage: 'Remove from list' }, add: { id: 'lists.account.add', defaultMessage: 'Add to list' }, }); const MapStateToProps = (state, { antennaId, added }) => ({ antenna: state.get('antennas').get(antennaId), added: typeof added === 'undefined' ? state.getIn(['antennaAdder', 'antennas', 'items']).includes(antennaId) : added, }); const mapDispatchToProps = (dispatch, { antennaId }) => ({ onRemove: () => dispatch(removeFromAntennaAdder(antennaId)), onAdd: () => dispatch(addToAntennaAdder(antennaId)), }); class Antenna extends ImmutablePureComponent { static propTypes = { antenna: ImmutablePropTypes.map.isRequired, intl: PropTypes.object.isRequired, onRemove: PropTypes.func.isRequired, onAdd: PropTypes.func.isRequired, added: PropTypes.bool, }; static defaultProps = { added: false, }; render () { const { antenna, intl, onRemove, onAdd, added } = this.props; let button; if (added) { button = ; } else { button = ; } return (
{antenna.get('title')}
{button}
); } } export default connect(MapStateToProps, mapDispatchToProps)(injectIntl(Antenna));