From 6da69967d0df35b04deb66192b6ecf960451c7b3 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 26 Jan 2024 15:09:45 +0100 Subject: [PATCH] [Glitch] Change compose form to use server-provided post character limit Port 805dba7f8d2a2d5f910ec1396247b36417170345 to glitch-soc Signed-off-by: Claire --- .../glitch/features/compose/components/compose_form.jsx | 6 +++--- .../features/compose/containers/compose_form_container.js | 1 + app/javascript/flavours/glitch/initial_state.js | 2 -- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/javascript/flavours/glitch/features/compose/components/compose_form.jsx b/app/javascript/flavours/glitch/features/compose/components/compose_form.jsx index ecadf21170..a09830d2c6 100644 --- a/app/javascript/flavours/glitch/features/compose/components/compose_form.jsx +++ b/app/javascript/flavours/glitch/features/compose/components/compose_form.jsx @@ -15,7 +15,6 @@ import { WithOptionalRouterPropTypes, withOptionalRouter } from 'flavours/glitch import AutosuggestInput from '../../../components/autosuggest_input'; import AutosuggestTextarea from '../../../components/autosuggest_textarea'; import { Button } from '../../../components/button'; -import { maxChars } from '../../../initial_state'; import EmojiPickerDropdown from '../containers/emoji_picker_dropdown_container'; import LanguageDropdown from '../containers/language_dropdown_container'; import PollButtonContainer from '../containers/poll_button_container'; @@ -81,6 +80,7 @@ class ComposeForm extends ImmutablePureComponent { isInReply: PropTypes.bool, singleColumn: PropTypes.bool, lang: PropTypes.string, + maxChars: PropTypes.number, ...WithOptionalRouterPropTypes }; @@ -116,7 +116,7 @@ class ComposeForm extends ImmutablePureComponent { }; canSubmit = () => { - const { isSubmitting, isChangingUpload, isUploading, anyMedia } = this.props; + const { isSubmitting, isChangingUpload, isUploading, anyMedia, maxChars } = this.props; const fulltext = this.getFulltextForCharacterCounting(); const isOnlyWhitespace = fulltext.length !== 0 && fulltext.trim().length === 0; @@ -250,7 +250,7 @@ class ComposeForm extends ImmutablePureComponent { }; render () { - const { intl, onPaste, autoFocus, withoutNavigation } = this.props; + const { intl, onPaste, autoFocus, withoutNavigation, maxChars } = this.props; const { highlighted } = this.state; const disabled = this.props.isSubmitting; diff --git a/app/javascript/flavours/glitch/features/compose/containers/compose_form_container.js b/app/javascript/flavours/glitch/features/compose/containers/compose_form_container.js index 6de24cc706..067621c84b 100644 --- a/app/javascript/flavours/glitch/features/compose/containers/compose_form_container.js +++ b/app/javascript/flavours/glitch/features/compose/containers/compose_form_container.js @@ -73,6 +73,7 @@ const mapStateToProps = state => ({ sideArm: sideArmPrivacy(state), media: state.getIn(['compose', 'media_attachments']), mediaDescriptionConfirmation: state.getIn(['local_settings', 'confirm_missing_media_description']), + maxChars: state.getIn(['server', 'server', 'configuration', 'statuses', 'max_characters'], 500), }); const mapDispatchToProps = (dispatch, { intl }) => ({ diff --git a/app/javascript/flavours/glitch/initial_state.js b/app/javascript/flavours/glitch/initial_state.js index a281dbaf31..15f2673fa2 100644 --- a/app/javascript/flavours/glitch/initial_state.js +++ b/app/javascript/flavours/glitch/initial_state.js @@ -66,7 +66,6 @@ export const hasMultiColumnPath = initialPath === '/' * @property {boolean=} critical_updates_pending * @property {InitialStateMeta} meta * @property {object} local_settings - * @property {number} max_toot_chars * @property {number} max_feed_hashtags * @property {number} poll_limits */ @@ -130,7 +129,6 @@ export const statusPageUrl = getMeta('status_page_url'); export const sso_redirect = getMeta('sso_redirect'); // Glitch-soc-specific settings -export const maxChars = (initialState && initialState.max_toot_chars) || 500; export const maxFeedHashtags = (initialState && initialState.max_feed_hashtags) || 4; export const favouriteModal = getMeta('favourite_modal'); export const pollLimits = (initialState && initialState.poll_limits);