diff --git a/web/app/components/comment/_view/_preview/comment_view_preview.scss b/web/app/components/comment/_view/_preview/comment_view_preview.scss new file mode 100644 index 00000000..e89e80af --- /dev/null +++ b/web/app/components/comment/_view/_preview/comment_view_preview.scss @@ -0,0 +1,18 @@ +.comment_view_preview { + .comment__username { + color: #0aa; + }; + + .comment__info { + display: inline; + + &::after { + content: ' '; + color: #777; + } + } + + .comment__text { + display: inline; + } +} diff --git a/web/app/components/comment/comment.jsx b/web/app/components/comment/comment.jsx index 04d11a7f..b36a3619 100644 --- a/web/app/components/comment/comment.jsx +++ b/web/app/components/comment/comment.jsx @@ -161,6 +161,7 @@ export default class Comment extends Component { const timeStr = `${time.toLocaleDateString([], { month: 'short', day: 'numeric' })}, ${time.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })}`; const o = { ...data, + text: mods.view === 'preview' ? getTextSnippet(data.text) : data.text, time: timeStr, score: { value: Math.abs(score), @@ -182,7 +183,11 @@ export default class Comment extends Component { return (
- + { + mods.view !== 'preview' && ( + + ) + }
@@ -208,7 +213,11 @@ export default class Comment extends Component { ) } - {o.time} + { + mods.view !== 'preview' && ( + {o.time} + ) + } { !mods.disabled && !isGuest && ( @@ -266,3 +275,15 @@ export default class Comment extends Component { ); } } + +function getTextSnippet(html) { + const LENGTH = 100; + const tmp = document.createElement('div'); + tmp.innerHTML = html; + + const result = tmp.innerText || ''; + const snippet = result.substr(0, LENGTH); + + console.log(snippet) + return (snippet.length === LENGTH && result.length !== LENGTH) ? `${snippet}...` : snippet; +} diff --git a/web/app/components/comment/index.js b/web/app/components/comment/index.js index 1dca1ef3..dafde925 100644 --- a/web/app/components/comment/index.js +++ b/web/app/components/comment/index.js @@ -27,3 +27,4 @@ require('./_pinned/comment_pinned.scss'); require('./_useless/comment_useless.scss'); require('./_view/_admin/comment_view_admin.scss'); +require('./_view/_preview/comment_view_preview.scss');