Allow switching between singe-option and multiple-option polls (#10603)
This commit is contained in:
		
							parent
							
								
									d763d39d26
								
							
						
					
					
						commit
						0e78862b61
					
				| @ -26,6 +26,7 @@ class Option extends React.PureComponent { | ||||
|     isPollMultiple: PropTypes.bool, | ||||
|     onChange: PropTypes.func.isRequired, | ||||
|     onRemove: PropTypes.func.isRequired, | ||||
|     onToggleMultiple: PropTypes.func.isRequired, | ||||
|     intl: PropTypes.object.isRequired, | ||||
|   }; | ||||
| 
 | ||||
| @ -37,13 +38,24 @@ class Option extends React.PureComponent { | ||||
|     this.props.onRemove(this.props.index); | ||||
|   }; | ||||
| 
 | ||||
|   handleToggleMultiple = e => { | ||||
|     this.props.onToggleMultiple(); | ||||
|     e.preventDefault(); | ||||
|     e.stopPropagation(); | ||||
|   }; | ||||
| 
 | ||||
|   render () { | ||||
|     const { isPollMultiple, title, index, intl } = this.props; | ||||
| 
 | ||||
|     return ( | ||||
|       <li> | ||||
|         <label className='poll__text editable'> | ||||
|           <span className={classNames('poll__input', { checkbox: isPollMultiple })} /> | ||||
|           <span | ||||
|             className={classNames('poll__input', { checkbox: isPollMultiple })} | ||||
|             onClick={this.handleToggleMultiple} | ||||
|             role='button' | ||||
|             tabIndex='0' | ||||
|           /> | ||||
| 
 | ||||
|           <input | ||||
|             type='text' | ||||
| @ -86,6 +98,10 @@ class PollForm extends ImmutablePureComponent { | ||||
|     this.props.onChangeSettings(e.target.value, this.props.isMultiple); | ||||
|   }; | ||||
| 
 | ||||
|   handleToggleMultiple = () => { | ||||
|     this.props.onChangeSettings(this.props.expiresIn, !this.props.isMultiple); | ||||
|   }; | ||||
| 
 | ||||
|   render () { | ||||
|     const { options, expiresIn, isMultiple, onChangeOption, onRemoveOption, intl } = this.props; | ||||
| 
 | ||||
| @ -96,7 +112,7 @@ class PollForm extends ImmutablePureComponent { | ||||
|     return ( | ||||
|       <div className='compose-form__poll-wrapper'> | ||||
|         <ul> | ||||
|           {options.map((title, i) => <Option title={title} key={i} index={i} onChange={onChangeOption} onRemove={onRemoveOption} isPollMultiple={isMultiple} />)} | ||||
|           {options.map((title, i) => <Option title={title} key={i} index={i} onChange={onChangeOption} onRemove={onRemoveOption} isPollMultiple={isMultiple} onToggleMultiple={this.handleToggleMultiple} />)} | ||||
|         </ul> | ||||
| 
 | ||||
|         <div className='poll__footer'> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user