Improve min poll options, expose value in API

main
Jeremy Kescher 2 years ago
parent 22427cd43c
commit 9c8fb2d475
No known key found for this signature in database
GPG Key ID: 48DFE4BB15BA5940

@ -81,7 +81,7 @@ class Option extends React.PureComponent {
</label>
<div className='poll__cancel'>
<IconButton disabled={index < 1} title={intl.formatMessage(messages.remove_option)} icon='times' onClick={this.handleOptionRemove} />
<IconButton disabled={index < pollLimits.min_options} title={intl.formatMessage(messages.remove_option)} icon='times' onClick={this.handleOptionRemove} />
</div>
</li>
);

@ -60,6 +60,7 @@ import { me, defaultContentType } from 'flavours/glitch/initial_state';
import { overwrite } from 'flavours/glitch/utils/js_helpers';
import { unescapeHTML } from 'flavours/glitch/utils/html';
import { recoverHashtags } from 'flavours/glitch/utils/hashtag';
import { pollLimits } from 'flavours/glitch/initial_state';
const totalElefriends = 3;
@ -127,7 +128,7 @@ const initialState = ImmutableMap({
});
const initialPoll = ImmutableMap({
options: ImmutableList(['']),
options: ImmutableList(new Array(pollLimits.min_options).fill('')),
expires_in: 24 * 3600,
multiple: false,
});

@ -7,6 +7,7 @@ import IconButton from 'mastodon/components/icon_button';
import Icon from 'mastodon/components/icon';
import AutosuggestInput from 'mastodon/components/autosuggest_input';
import classNames from 'classnames';
import { pollLimits } from 'mastodon/initial_state';
const messages = defineMessages({
option_placeholder: { id: 'compose_form.poll.option_placeholder', defaultMessage: 'Choice {number}' },
@ -102,7 +103,7 @@ class Option extends React.PureComponent {
</label>
<div className='poll__cancel'>
<IconButton disabled={index < 1} title={intl.formatMessage(messages.remove_option)} icon='times' onClick={this.handleOptionRemove} />
<IconButton disabled={index < pollLimits.min_options} title={intl.formatMessage(messages.remove_option)} icon='times' onClick={this.handleOptionRemove} />
</div>
</li>
);

@ -129,4 +129,7 @@ export const version = getMeta('version');
export const translationEnabled = getMeta('translation_enabled');
export const languages = initialState?.languages;
// CatCatNya~ specific setting for vanilla flavor
export const pollLimits = (initialState && initialState.poll_limits);
export default initialState;

@ -52,7 +52,7 @@ import { STORE_HYDRATE } from '../actions/store';
import { REDRAFT } from '../actions/statuses';
import { Map as ImmutableMap, List as ImmutableList, OrderedSet as ImmutableOrderedSet, fromJS } from 'immutable';
import uuid from '../uuid';
import { me } from '../initial_state';
import { me, pollLimits } from '../initial_state';
import { unescapeHTML } from '../utils/html';
const initialState = ImmutableMap({
@ -95,7 +95,7 @@ const initialState = ImmutableMap({
});
const initialPoll = ImmutableMap({
options: ImmutableList(['']),
options: ImmutableList(new Array(pollLimits.min_options).fill('')),
expires_in: 24 * 3600,
multiple: false,
});

@ -17,6 +17,7 @@ class InitialStateSerializer < ActiveModel::Serializer
def poll_limits
{
min_options: PollValidator::MIN_OPTIONS,
max_options: PollValidator::MAX_OPTIONS,
max_option_chars: PollValidator::MAX_OPTION_CHARS,
min_expiration: PollValidator::MIN_EXPIRATION,

@ -67,6 +67,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer
},
polls: {
min_options: PollValidator::MIN_OPTIONS,
max_options: PollValidator::MAX_OPTIONS,
max_characters_per_option: PollValidator::MAX_OPTION_CHARS,
min_expiration: PollValidator::MIN_EXPIRATION,

@ -42,6 +42,7 @@ class REST::V1::InstanceSerializer < ActiveModel::Serializer
def poll_limits
{
min_options: PollValidator::MIN_OPTIONS,
max_options: PollValidator::MAX_OPTIONS,
max_option_chars: PollValidator::MAX_OPTION_CHARS,
min_expiration: PollValidator::MIN_EXPIRATION,
@ -91,6 +92,7 @@ class REST::V1::InstanceSerializer < ActiveModel::Serializer
},
polls: {
min_options: PollValidator::MIN_OPTIONS,
max_options: PollValidator::MAX_OPTIONS,
max_characters_per_option: PollValidator::MAX_OPTION_CHARS,
min_expiration: PollValidator::MIN_EXPIRATION,

Loading…
Cancel
Save