Merge pull request #3375 from matrix-org/bwindels/cider-colononmention

New composer: share user pill postfix between autocomplete and insert mention
pull/21833/head
Bruno Windels 2019-09-02 14:58:23 +00:00 committed by GitHub
commit c4d7df768d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 5 deletions

View File

@ -290,11 +290,12 @@ export default class SendMessageComposer extends React.Component {
const member = this.props.room.getMember(userId);
const displayName = member ?
member.rawDisplayName : userId;
const userPillPart = partCreator.userPill(displayName, userId);
const caret = this._editorRef.getCaret();
const position = model.positionForOffset(caret.offset, caret.atNodeEnd);
const insertIndex = position.index + 1;
const parts = partCreator.createMentionParts(insertIndex, displayName, userId);
model.transform(() => {
const addedLen = model.insert([userPillPart], position);
const addedLen = model.insert(parts, position);
return model.positionForOffset(caret.offset + addedLen, true);
});
// refocus on composer, as we just clicked "Mention"

View File

@ -106,9 +106,7 @@ export default class AutocompleteWrapperModel {
if (completionId === "@room") {
return [this._partCreator.atRoomPill(completionId)];
} else {
const pill = this._partCreator.userPill(text, completionId);
const postfix = this._partCreator.plain(this._partIndex === 0 ? ": " : " ");
return [pill, postfix];
return this._partCreator.createMentionParts(this._partIndex, text, completionId);
}
}
case "#":

View File

@ -442,6 +442,12 @@ export class PartCreator {
const member = this._room.getMember(userId);
return new UserPillPart(userId, displayName, member);
}
createMentionParts(partIndex, displayName, userId) {
const pill = this.userPill(displayName, userId);
const postfix = this.plain(partIndex === 0 ? ": " : " ");
return [pill, postfix];
}
}
// part creator that support auto complete for /commands,