From 805dba7f8d2a2d5f910ec1396247b36417170345 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 26 Jan 2024 15:09:45 +0100 Subject: [PATCH] Change compose form to use server-provided post character limit (#28928) --- .../features/compose/components/compose_form.jsx | 9 +++++---- .../compose/containers/compose_form_container.js | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/javascript/mastodon/features/compose/components/compose_form.jsx b/app/javascript/mastodon/features/compose/components/compose_form.jsx index c5ee89468..b93bac9d1 100644 --- a/app/javascript/mastodon/features/compose/components/compose_form.jsx +++ b/app/javascript/mastodon/features/compose/components/compose_form.jsx @@ -70,6 +70,7 @@ class ComposeForm extends ImmutablePureComponent { isInReply: PropTypes.bool, singleColumn: PropTypes.bool, lang: PropTypes.string, + maxChars: PropTypes.number, ...WithOptionalRouterPropTypes }; @@ -101,11 +102,11 @@ 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; - return !(isSubmitting || isUploading || isChangingUpload || length(fulltext) > 500 || (isOnlyWhitespace && !anyMedia)); + return !(isSubmitting || isUploading || isChangingUpload || length(fulltext) > maxChars || (isOnlyWhitespace && !anyMedia)); }; handleSubmit = (e) => { @@ -224,7 +225,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; @@ -297,7 +298,7 @@ class ComposeForm extends ImmutablePureComponent { - +
diff --git a/app/javascript/mastodon/features/compose/containers/compose_form_container.js b/app/javascript/mastodon/features/compose/containers/compose_form_container.js index ba20698ba..b5e530033 100644 --- a/app/javascript/mastodon/features/compose/containers/compose_form_container.js +++ b/app/javascript/mastodon/features/compose/containers/compose_form_container.js @@ -28,6 +28,7 @@ const mapStateToProps = state => ({ anyMedia: state.getIn(['compose', 'media_attachments']).size > 0, isInReply: state.getIn(['compose', 'in_reply_to']) !== null, lang: state.getIn(['compose', 'language']), + maxChars: state.getIn(['server', 'server', 'configuration', 'statuses', 'max_characters'], 500), }); const mapDispatchToProps = (dispatch) => ({