uiux(StatusChatInput): toggle markdown from selection

Closes #1930
This commit is contained in:
Pascal Precht 2021-03-03 16:13:41 +01:00 committed by Iuri Matias
parent a581facd88
commit 973830349d
1 changed files with 23 additions and 2 deletions

View File

@ -194,8 +194,29 @@ Rectangle {
function wrapSelection(wrapWith) { function wrapSelection(wrapWith) {
if (messageInputField.selectionStart - messageInputField.selectionEnd === 0) return if (messageInputField.selectionStart - messageInputField.selectionEnd === 0) return
insertInTextInput(messageInputField.selectionStart, wrapWith);
insertInTextInput(messageInputField.selectionEnd, wrapWith); let selection = messageInputField.selectedText
let availableAnnotations = ["**", "*", "~~", "`"]
let performWrap = true
// First we remove all existing annotations of the selections, so that users can easily
// switch from, for example, italic to bold
for (let i = 0; i < availableAnnotations.length; i++) {
let annotation = availableAnnotations[i]
if (selection.startsWith(annotation) && selection.endsWith(annotation)) {
messageInputField.remove(messageInputField.selectionEnd, messageInputField.selectionEnd - annotation.length);
messageInputField.remove(messageInputField.selectionStart, messageInputField.selectionStart + annotation.length);
performWrap = annotation !== wrapWith;
break;
}
}
if (performWrap) {
insertInTextInput(messageInputField.selectionStart, wrapWith);
insertInTextInput(messageInputField.selectionEnd, wrapWith);
}
messageInputField.deselect() messageInputField.deselect()
formatInputMessage() formatInputMessage()
} }