import { defineMessages, injectIntl } from 'react-intl'
import { me } from '../initial_state'
import { openModal } from '../actions/modal'
import Button from './button'

const messages = defineMessages({
  gab: { id: 'gab', defaultMessage: 'Gab' }, 
})

const mapDispatchToProps = (dispatch) => ({
  onOpenCompose: () => dispatch(openModal('COMPOSE')),
})

export default
@injectIntl
@connect(null, mapDispatchToProps)
class FloatingActionButton extends PureComponent {

  static propTypes = {
    intl: PropTypes.object.isRequired,
    onOpenCompose: PropTypes.func.isRequired,
  }

  shouldComponentUpdate(nextProps) {
    return nextProps.message !== this.props.message
  }

  render() {
    const { intl, onOpenCompose } = this.props

    if (!me) return null

    const message = intl.formatMessage(messages.gab)

    return (
      <div
        className={[_s.posFixed, _s.z4, _s.mb15, _s.mr15, _s.bottom55PX, _s.right0].join(' ')}
      >
        <Button
          to='/compose'
          className={[_s.py15, _s.height60PX, _s.saveAreaInsetMR, _s.saveAreaInsetMB, _s.width60PX, _s.justifyContentCenter, _s.alignItemsCenter].join(' ')}
          title={message}
          aria-label={message}
          icon='pencil'
          iconSize='20px'
        />
      </div>
    )
  }
  
}