Fixes string length issue for multibyte characters. (#2443)
This commit is contained in:
		
							parent
							
								
									d4f7f11c3c
								
							
						
					
					
						commit
						48652cb41e
					
				
					 4 changed files with 20 additions and 13 deletions
				
			
		|  | @ -1,4 +1,5 @@ | |||
| import PropTypes from 'prop-types'; | ||||
| import { length } from 'stringz'; | ||||
| 
 | ||||
| class CharacterCounter extends React.PureComponent { | ||||
| 
 | ||||
|  | @ -10,7 +11,7 @@ class CharacterCounter extends React.PureComponent { | |||
|   } | ||||
| 
 | ||||
|   render () { | ||||
|     const diff = this.props.max - this.props.text.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "_").length; | ||||
|     const diff = this.props.max - length(this.props.text); | ||||
| 
 | ||||
|     return this.checkRemainingText(diff); | ||||
|   } | ||||
|  |  | |||
|  | @ -1,4 +1,5 @@ | |||
| import emojify from './components/emoji' | ||||
| import emojify from './components/emoji'; | ||||
| import { length } from 'stringz'; | ||||
| 
 | ||||
| $(() => { | ||||
|   $.each($('.emojify'), (_, content) => { | ||||
|  | @ -40,9 +41,9 @@ $(() => { | |||
| 
 | ||||
|   // used on /settings/profile | ||||
|   $('.account_display_name').on('input', e => { | ||||
|     $('.name-counter').text(30 - $(e.target).val().length) | ||||
|     $('.name-counter').text(30 - length($(e.target).val())); | ||||
|   }); | ||||
|   $('.account_note').on('input', e => { | ||||
|     $('.note-counter').text(160 - $(e.target).val().length) | ||||
|     $('.note-counter').text(160 - length($(e.target).val())); | ||||
|   }); | ||||
| }); | ||||
|  |  | |||
		Reference in a new issue