diff --git a/app/assets/javascripts/components/features/compose/components/character_counter.jsx b/app/assets/javascripts/components/features/compose/components/character_counter.jsx index e6b67535..fc64f94a 100644 --- a/app/assets/javascripts/components/features/compose/components/character_counter.jsx +++ b/app/assets/javascripts/components/features/compose/components/character_counter.jsx @@ -9,14 +9,17 @@ const CharacterCounter = React.createClass({ mixins: [PureRenderMixin], + checkRemainingText (diff) { + if (diff <= 0) { + return {diff}; + } + return {diff}; + }, + render () { const diff = this.props.max - this.props.text.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "_").length; - return ( - - {diff} - - ); + return this.checkRemainingText(diff); } }); diff --git a/storybook/config.js b/storybook/config.js index 4a111a8b..924eadf4 100644 --- a/storybook/config.js +++ b/storybook/config.js @@ -17,6 +17,7 @@ window.React = React; function loadStories () { require('./stories/loading_indicator.story.jsx'); require('./stories/button.story.jsx'); + require('./stories/character_counter.story.jsx'); require('./stories/autosuggest_textarea.story.jsx'); } diff --git a/storybook/stories/character_counter.story.jsx b/storybook/stories/character_counter.story.jsx new file mode 100644 index 00000000..931d8a03 --- /dev/null +++ b/storybook/stories/character_counter.story.jsx @@ -0,0 +1,20 @@ +import { storiesOf } from '@kadira/storybook'; +import CharacterCounter from '../../app/assets/javascripts/components/features/compose/components/character_counter'; + +storiesOf('CharacterCounter', module) + .add('no text', () => { + const text = ''; + return ; + }) + .add('a few strings text', () => { + const text = '0123456789'; + return ; + }) + .add('the same text', () => { + const text = '01234567890123456789'; + return ; + }) + .add('over text', () => { + const text = '01234567890123456789012345678901234567890123456789'; + return ; + });