* Add actions and reducers for polls * Add poll button * Disable media upload if poll enabled * Add poll form * Make delete & redraft work with polls
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 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>
 | |
|     );
 | |
|   }
 | |
| 
 | |
| }
 |