Use server-provided poll limits instead of hardcoded ones
Also does not enable polls if no limits are provided by the server
This commit is contained in:
		
							parent
							
								
									9f06da948b
								
							
						
					
					
						commit
						49c4e57973
					
				
					 3 changed files with 20 additions and 15 deletions
				
			
		|  | @ -19,6 +19,7 @@ import { | ||||||
|   assignHandlers, |   assignHandlers, | ||||||
|   hiddenComponent, |   hiddenComponent, | ||||||
| } from 'flavours/glitch/util/react_helpers'; | } from 'flavours/glitch/util/react_helpers'; | ||||||
|  | import { pollLimits } from 'flavours/glitch/util/initial_state'; | ||||||
| 
 | 
 | ||||||
| //  Messages.
 | //  Messages.
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|  | @ -248,6 +249,7 @@ export default class ComposerOptions extends React.PureComponent { | ||||||
|           onModalOpen={onModalOpen} |           onModalOpen={onModalOpen} | ||||||
|           title={intl.formatMessage(messages.attach)} |           title={intl.formatMessage(messages.attach)} | ||||||
|         /> |         /> | ||||||
|  |         {!!pollLimits && ( | ||||||
|           <IconButton |           <IconButton | ||||||
|             active={hasPoll} |             active={hasPoll} | ||||||
|             disabled={disabled || !allowPoll} |             disabled={disabled || !allowPoll} | ||||||
|  | @ -261,6 +263,7 @@ export default class ComposerOptions extends React.PureComponent { | ||||||
|             }} |             }} | ||||||
|             title={intl.formatMessage(hasPoll ? messages.remove_poll : messages.add_poll)} |             title={intl.formatMessage(hasPoll ? messages.remove_poll : messages.add_poll)} | ||||||
|           /> |           /> | ||||||
|  |         )} | ||||||
|         <Motion |         <Motion | ||||||
|           defaultStyle={{ scale: 0.87 }} |           defaultStyle={{ scale: 0.87 }} | ||||||
|           style={{ |           style={{ | ||||||
|  |  | ||||||
|  | @ -6,6 +6,7 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; | ||||||
| import IconButton from 'flavours/glitch/components/icon_button'; | import IconButton from 'flavours/glitch/components/icon_button'; | ||||||
| import Icon from 'flavours/glitch/components/icon'; | import Icon from 'flavours/glitch/components/icon'; | ||||||
| import classNames from 'classnames'; | import classNames from 'classnames'; | ||||||
|  | import { pollLimits } from 'flavours/glitch/util/initial_state'; | ||||||
| 
 | 
 | ||||||
| const messages = defineMessages({ | const messages = defineMessages({ | ||||||
|   option_placeholder: { id: 'compose_form.poll.option_placeholder', defaultMessage: 'Choice {number}' }, |   option_placeholder: { id: 'compose_form.poll.option_placeholder', defaultMessage: 'Choice {number}' }, | ||||||
|  | @ -48,7 +49,7 @@ class Option extends React.PureComponent { | ||||||
|           <input |           <input | ||||||
|             type='text' |             type='text' | ||||||
|             placeholder={intl.formatMessage(messages.option_placeholder, { number: index + 1 })} |             placeholder={intl.formatMessage(messages.option_placeholder, { number: index + 1 })} | ||||||
|             maxlength={25} |             maxlength={pollLimits.max_option_chars} | ||||||
|             value={title} |             value={title} | ||||||
|             onChange={this.handleOptionTitleChange} |             onChange={this.handleOptionTitleChange} | ||||||
|           /> |           /> | ||||||
|  | @ -100,7 +101,7 @@ class PollForm extends ImmutablePureComponent { | ||||||
|         </ul> |         </ul> | ||||||
| 
 | 
 | ||||||
|         <div className='poll__footer'> |         <div className='poll__footer'> | ||||||
|           {options.size < 4 && ( |           {options.size < pollLimits.max_options && ( | ||||||
|             <button className='button button-secondary' onClick={this.handleAddOption}><Icon id='plus' /> <FormattedMessage {...messages.add_option} /></button> |             <button className='button button-secondary' onClick={this.handleAddOption}><Icon id='plus' /> <FormattedMessage {...messages.add_option} /></button> | ||||||
|           )} |           )} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -22,6 +22,7 @@ export const deleteModal = getMeta('delete_modal'); | ||||||
| export const me = getMeta('me'); | export const me = getMeta('me'); | ||||||
| export const searchEnabled = getMeta('search_enabled'); | export const searchEnabled = getMeta('search_enabled'); | ||||||
| export const maxChars = (initialState && initialState.max_toot_chars) || 500; | export const maxChars = (initialState && initialState.max_toot_chars) || 500; | ||||||
|  | export const pollLimits = (initialState && initialState.poll_limits); | ||||||
| export const invitesEnabled = getMeta('invites_enabled'); | export const invitesEnabled = getMeta('invites_enabled'); | ||||||
| export const version = getMeta('version'); | export const version = getMeta('version'); | ||||||
| export const mascot = getMeta('mascot'); | export const mascot = getMeta('mascot'); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue