From da59430cb7669d1c5bd1721420720168c0c6e2a9 Mon Sep 17 00:00:00 2001 From: Daniel Klabbers Date: Mon, 15 Feb 2016 20:49:12 +0100 Subject: [PATCH] fixes flarum/core#781 adding unnecessary newlines with empty composer fixing indentation --- .../mentions/js/forum/src/addPostReplyAction.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/extensions/mentions/js/forum/src/addPostReplyAction.js b/extensions/mentions/js/forum/src/addPostReplyAction.js index 47cfdbb41..b2bff1aab 100644 --- a/extensions/mentions/js/forum/src/addPostReplyAction.js +++ b/extensions/mentions/js/forum/src/addPostReplyAction.js @@ -3,12 +3,16 @@ import Button from 'flarum/components/Button'; import CommentPost from 'flarum/components/CommentPost'; import DiscussionControls from 'flarum/utils/DiscussionControls'; -export default function() { - extend(CommentPost.prototype, 'actionItems', function(items) { +export default function () { + extend(CommentPost.prototype, 'actionItems', function (items) { const post = this.props.post; if (post.isHidden() || (app.session.user && !post.discussion().canReply())) return; + function calculatePrecedingNewlines(precedingContent) { + return precedingContent.length == 0 ? 0 : 3 - precedingContent.match(/(\n{0,2})$/)[0].length; + } + function insertMention(component, quote) { const user = post.user(); const mention = '@' + (user ? user.username() : post.number()) + '#' + post.id() + ' '; @@ -22,10 +26,9 @@ export default function() { const cursorPosition = component.editor.getSelectionRange()[0]; const precedingContent = component.editor.value().slice(0, cursorPosition); - const trailingNewlines = precedingContent.match(/(\n{0,2})$/)[0].length; component.editor.insertAtCursor( - Array(3 - trailingNewlines).join('\n') + // Insert up to two newlines, depending on preceding whitespace + Array(calculatePrecedingNewlines(precedingContent)).join('\n') + // Insert up to two newlines, depending on preceding whitespace (quote ? '> ' + mention + quote.trim().replace(/\n/g, '\n> ') + '\n\n' : mention)