]> cat aescling's git repositories - mastodon.git/commitdiff
Use server-provided poll limits instead of hardcoded ones
authorThibaut Girka <thib@sitedethib.com>
Wed, 6 Mar 2019 12:42:48 +0000 (13:42 +0100)
committerThibG <thib@sitedethib.com>
Wed, 6 Mar 2019 22:56:53 +0000 (23:56 +0100)
Also does not enable polls if no limits are provided by the server

app/javascript/flavours/glitch/features/composer/options/index.js
app/javascript/flavours/glitch/features/composer/poll_form/components/poll_form.js
app/javascript/flavours/glitch/util/initial_state.js

index 80ac1b63a1cfa2c4e2a9dfe59ca1d7e628b6dfe2..7c7f01dc2db2860088b25a57ce74cb1f5686c971 100644 (file)
@@ -19,6 +19,7 @@ import {
   assignHandlers,
   hiddenComponent,
 } from 'flavours/glitch/util/react_helpers';
+import { pollLimits } from 'flavours/glitch/util/initial_state';
 
 //  Messages.
 const messages = defineMessages({
@@ -248,19 +249,21 @@ export default class ComposerOptions extends React.PureComponent {
           onModalOpen={onModalOpen}
           title={intl.formatMessage(messages.attach)}
         />
-        <IconButton
-          active={hasPoll}
-          disabled={disabled || !allowPoll}
-          icon='tasks'
-          inverted
-          onClick={onTogglePoll}
-          size={18}
-          style={{
-            height: null,
-            lineHeight: null,
-          }}
-          title={intl.formatMessage(hasPoll ? messages.remove_poll : messages.add_poll)}
-        />
+        {!!pollLimits && (
+          <IconButton
+            active={hasPoll}
+            disabled={disabled || !allowPoll}
+            icon='tasks'
+            inverted
+            onClick={onTogglePoll}
+            size={18}
+            style={{
+              height: null,
+              lineHeight: null,
+            }}
+            title={intl.formatMessage(hasPoll ? messages.remove_poll : messages.add_poll)}
+          />
+        )}
         <Motion
           defaultStyle={{ scale: 0.87 }}
           style={{
index c329b04cd6f6bac1ce366363d3f79184d8a0496a..566cf123a6d01748fda5cb34cb46e6f3d69716ec 100644 (file)
@@ -6,6 +6,7 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
 import IconButton from 'flavours/glitch/components/icon_button';
 import Icon from 'flavours/glitch/components/icon';
 import classNames from 'classnames';
+import { pollLimits } from 'flavours/glitch/util/initial_state';
 
 const messages = defineMessages({
   option_placeholder: { id: 'compose_form.poll.option_placeholder', defaultMessage: 'Choice {number}' },
@@ -48,7 +49,7 @@ class Option extends React.PureComponent {
           <input
             type='text'
             placeholder={intl.formatMessage(messages.option_placeholder, { number: index + 1 })}
-            maxlength={25}
+            maxlength={pollLimits.max_option_chars}
             value={title}
             onChange={this.handleOptionTitleChange}
           />
@@ -100,7 +101,7 @@ class PollForm extends ImmutablePureComponent {
         </ul>
 
         <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>
           )}
 
index a3c65563c2f42ec98e3de72fa18995aec964172e..62588eeaaf74f9449700cc1823c189a300143666 100644 (file)
@@ -22,6 +22,7 @@ export const deleteModal = getMeta('delete_modal');
 export const me = getMeta('me');
 export const searchEnabled = getMeta('search_enabled');
 export const maxChars = (initialState && initialState.max_toot_chars) || 500;
+export const pollLimits = (initialState && initialState.poll_limits);
 export const invitesEnabled = getMeta('invites_enabled');
 export const version = getMeta('version');
 export const mascot = getMeta('mascot');