mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-16 21:24:59 +08:00
Merge pull request #4768 from matrix-org/travis/room-list/better-filter
Match new room list's text search to old room list
This commit is contained in:
commit
4a74baf99d
@ -17,6 +17,7 @@ limitations under the License.
|
|||||||
import { Room } from "matrix-js-sdk/src/models/room";
|
import { Room } from "matrix-js-sdk/src/models/room";
|
||||||
import { FILTER_CHANGED, FilterPriority, IFilterCondition } from "./IFilterCondition";
|
import { FILTER_CHANGED, FilterPriority, IFilterCondition } from "./IFilterCondition";
|
||||||
import { EventEmitter } from "events";
|
import { EventEmitter } from "events";
|
||||||
|
import { removeHiddenChars } from "matrix-js-sdk/src/utils";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A filter condition for the room list which reveals rooms of a particular
|
* A filter condition for the room list which reveals rooms of a particular
|
||||||
@ -45,7 +46,16 @@ export class NameFilterCondition extends EventEmitter implements IFilterConditio
|
|||||||
}
|
}
|
||||||
|
|
||||||
public isVisible(room: Room): boolean {
|
public isVisible(room: Room): boolean {
|
||||||
// TODO: Improve this filter to include aliases and such
|
const lcFilter = this.search.toLowerCase();
|
||||||
return room.name.toLowerCase().indexOf(this.search.toLowerCase()) >= 0;
|
if (this.search[0] === '#') {
|
||||||
|
// Try and find rooms by alias
|
||||||
|
if (room.getCanonicalAlias() && room.getCanonicalAlias().toLowerCase().startsWith(lcFilter)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (room.getAltAliases().some(a => a.toLowerCase().startsWith(lcFilter))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return room.name && removeHiddenChars(room.name).toLowerCase().includes(lcFilter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user