mirror of
https://github.com/element-hq/element-web
synced 2024-11-28 04:21:57 +03:00
Merge pull request #3382 from matrix-org/bwindels/escape-command-slash
New composer: allow escaping the first slash to not write a command
This commit is contained in:
commit
4575aaa9f6
2 changed files with 21 additions and 1 deletions
|
@ -18,7 +18,13 @@ import React from 'react';
|
|||
import PropTypes from 'prop-types';
|
||||
import dis from '../../../dispatcher';
|
||||
import EditorModel from '../../../editor/model';
|
||||
import {htmlSerializeIfNeeded, textSerialize, containsEmote, stripEmoteCommand} from '../../../editor/serialize';
|
||||
import {
|
||||
htmlSerializeIfNeeded,
|
||||
textSerialize,
|
||||
containsEmote,
|
||||
stripEmoteCommand,
|
||||
unescapeMessage,
|
||||
} from '../../../editor/serialize';
|
||||
import {CommandPartCreator} from '../../../editor/parts';
|
||||
import {MatrixClient} from 'matrix-js-sdk';
|
||||
import BasicMessageComposer from "./BasicMessageComposer";
|
||||
|
@ -54,6 +60,7 @@ function createMessageContent(model, permalinkCreator) {
|
|||
if (isEmote) {
|
||||
model = stripEmoteCommand(model);
|
||||
}
|
||||
model = unescapeMessage(model);
|
||||
const repliedToEvent = RoomViewStore.getQuotingEvent();
|
||||
|
||||
const body = textSerialize(model);
|
||||
|
|
|
@ -74,3 +74,16 @@ export function stripEmoteCommand(model) {
|
|||
model.removeText({index: 0, offset: 0}, 4);
|
||||
return model;
|
||||
}
|
||||
|
||||
export function unescapeMessage(model) {
|
||||
const {parts} = model;
|
||||
if (parts.length) {
|
||||
const firstPart = parts[0];
|
||||
// only unescape \/ to / at start of editor
|
||||
if (firstPart.type === "plain" && firstPart.text.startsWith("\\/")) {
|
||||
model = model.clone();
|
||||
model.removeText({index: 0, offset: 0}, 1);
|
||||
}
|
||||
}
|
||||
return model;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue