12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import React from 'react';
- import IconButton from '../../../components/icon_button';
- import PropTypes from 'prop-types';
- import { defineMessages, injectIntl } from 'react-intl';
- const messages = defineMessages({
- add_poll: { id: 'poll_button.add_poll', defaultMessage: 'Add a poll' },
- remove_poll: { id: 'poll_button.remove_poll', defaultMessage: 'Remove poll' },
- });
- const iconStyle = {
- height: null,
- lineHeight: '27px',
- };
- export default
- @injectIntl
- class PollButton extends React.PureComponent {
- static propTypes = {
- disabled: PropTypes.bool,
- unavailable: PropTypes.bool,
- active: PropTypes.bool,
- onClick: PropTypes.func.isRequired,
- intl: PropTypes.object.isRequired,
- };
- handleClick = () => {
- this.props.onClick();
- }
- render () {
- const { intl, active, unavailable, disabled } = this.props;
- if (unavailable) {
- return null;
- }
- return (
- <div className='compose-form__poll-button'>
- <IconButton
- icon='tasks'
- title={intl.formatMessage(active ? messages.remove_poll : messages.add_poll)}
- disabled={disabled}
- onClick={this.handleClick}
- className={`compose-form__poll-button-icon ${active ? 'active' : ''}`}
- size={18}
- inverted
- style={iconStyle}
- />
- </div>
- );
- }
- }
|