diff options
author | Gô Shoemake <marrus-sh@users.noreply.github.com> | 2017-06-19 02:31:14 -0700 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-06-19 11:31:14 +0200 |
commit | 29a22691d2a9eefbc2eb886659843f87d187c98e (patch) | |
tree | 6dca7962bb8f12e3c915deb09756f59aa93c7a08 | |
parent | d55f207274648369cba30ff001aa3e354fa30dca (diff) |
Fix character/grapheme count stuff (#3839)
* Bring Toot button in line with counter Both should use stringz I guess * Use grapheme_length for character count
-rw-r--r-- | app/javascript/mastodon/features/compose/components/compose_form.js | 3 | ||||
-rw-r--r-- | app/validators/status_length_validator.rb | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/app/javascript/mastodon/features/compose/components/compose_form.js b/app/javascript/mastodon/features/compose/components/compose_form.js index 8da3f8046..0ee45c978 100644 --- a/app/javascript/mastodon/features/compose/components/compose_form.js +++ b/app/javascript/mastodon/features/compose/components/compose_form.js @@ -18,6 +18,7 @@ import UploadFormContainer from '../containers/upload_form_container'; import TextIconButton from './text_icon_button'; import WarningContainer from '../containers/warning_container'; import ImmutablePureComponent from 'react-immutable-pure-component'; +import { length } from 'stringz'; const messages = defineMessages({ placeholder: { id: 'compose_form.placeholder', defaultMessage: 'What is on your mind?' }, @@ -193,7 +194,7 @@ class ComposeForm extends ImmutablePureComponent { <div className='compose-form__publish'> <div className='character-counter__wrapper'><CharacterCounter max={500} text={text} /></div> - <div className='compose-form__publish-button-wrapper'><Button text={publishText} onClick={this.handleSubmit} disabled={disabled || this.props.is_uploading || text.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, '_').length > 500 || (text.length !==0 && text.trim().length === 0)} block /></div> + <div className='compose-form__publish-button-wrapper'><Button text={publishText} onClick={this.handleSubmit} disabled={disabled || this.props.is_uploading || length(text) > 500 || (text.length !==0 && text.trim().length === 0)} block /></div> </div> </div> </div> diff --git a/app/validators/status_length_validator.rb b/app/validators/status_length_validator.rb index 55135a598..3f3e422d9 100644 --- a/app/validators/status_length_validator.rb +++ b/app/validators/status_length_validator.rb @@ -5,6 +5,6 @@ class StatusLengthValidator < ActiveModel::Validator def validate(status) return unless status.local? && !status.reblog? - status.errors.add(:text, I18n.t('statuses.over_character_limit', max: MAX_CHARS)) if [status.text, status.spoiler_text].join.length > MAX_CHARS + status.errors.add(:text, I18n.t('statuses.over_character_limit', max: MAX_CHARS)) if [status.text, status.spoiler_text].join.mb_chars.grapheme_length > MAX_CHARS end end |