Merge pull request #2830 from matrix-org/travis/autocomplete-ancient-history
Filter out upgraded rooms from autocomplete results
This commit is contained in:
commit
1c6f0b62f4
1 changed files with 16 additions and 2 deletions
|
@ -56,7 +56,7 @@ export default class RoomProvider extends AutocompleteProvider {
|
||||||
const {command, range} = this.getCurrentCommand(query, selection, force);
|
const {command, range} = this.getCurrentCommand(query, selection, force);
|
||||||
if (command) {
|
if (command) {
|
||||||
// the only reason we need to do this is because Fuse only matches on properties
|
// the only reason we need to do this is because Fuse only matches on properties
|
||||||
this.matcher.setObjects(client.getRooms().filter(
|
let matcherObjects = client.getRooms().filter(
|
||||||
(room) => !!room && !!getDisplayAliasForRoom(room),
|
(room) => !!room && !!getDisplayAliasForRoom(room),
|
||||||
).map((room) => {
|
).map((room) => {
|
||||||
return {
|
return {
|
||||||
|
@ -64,7 +64,21 @@ export default class RoomProvider extends AutocompleteProvider {
|
||||||
name: room.name,
|
name: room.name,
|
||||||
displayedAlias: getDisplayAliasForRoom(room),
|
displayedAlias: getDisplayAliasForRoom(room),
|
||||||
};
|
};
|
||||||
}));
|
});
|
||||||
|
|
||||||
|
// Filter out any matches where the user will have also autocompleted new rooms
|
||||||
|
matcherObjects = matcherObjects.filter((r) => {
|
||||||
|
const tombstone = r.room.currentState.getStateEvents("m.room.tombstone", "");
|
||||||
|
if (tombstone && tombstone.getContent() && tombstone.getContent()['replacement_room']) {
|
||||||
|
const hasReplacementRoom = matcherObjects.some(
|
||||||
|
(r2) => r2.room.roomId === tombstone.getContent()['replacement_room'],
|
||||||
|
);
|
||||||
|
return !hasReplacementRoom;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
this.matcher.setObjects(matcherObjects);
|
||||||
const matchedString = command[0];
|
const matchedString = command[0];
|
||||||
completions = this.matcher.match(matchedString);
|
completions = this.matcher.match(matchedString);
|
||||||
completions = _sortBy(completions, [
|
completions = _sortBy(completions, [
|
||||||
|
|
Loading…
Reference in a new issue