From bb651899b192e53ddfad7a40dce1a0561571bd1e Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Wed, 17 Jun 2015 18:22:14 +0930 Subject: [PATCH] Extract into truncate helper --- js/forum/src/components/post-preview.js | 3 ++- js/lib/utils/truncate.js | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 js/lib/utils/truncate.js diff --git a/js/forum/src/components/post-preview.js b/js/forum/src/components/post-preview.js index 30ace129a..ec94e721e 100644 --- a/js/forum/src/components/post-preview.js +++ b/js/forum/src/components/post-preview.js @@ -3,6 +3,7 @@ import avatar from 'flarum/helpers/avatar'; import username from 'flarum/helpers/username'; import humanTime from 'flarum/helpers/human-time'; import highlight from 'flarum/helpers/highlight'; +import truncate from 'flarum/utils/truncate'; export default class PostPreview extends Component { view() { @@ -17,7 +18,7 @@ export default class PostPreview extends Component { start = Math.max(0, excerpt.search(regexp) - 100); } - excerpt = (start > 0 ? '...' : '')+excerpt.substring(start, start + 200)+(excerpt.length > start + 200 ? '...' : ''); + excerpt = truncate(excerpt, 200, start); if (this.props.highlight) { excerpt = highlight(excerpt, regexp); diff --git a/js/lib/utils/truncate.js b/js/lib/utils/truncate.js new file mode 100644 index 000000000..e59286fd9 --- /dev/null +++ b/js/lib/utils/truncate.js @@ -0,0 +1,5 @@ +export default function truncate(string, length, start) { + start = start || 0; + + return (start > 0 ? '...' : '')+string.substring(start, start + length)+(string.length > start + length ? '...' : ''); +}