Merge pull request #3759 from matrix-org/t3chguy/fix_room_list_filtering

Fix room list filtering weird case sensitivity
This commit is contained in:
Michael Telatynski 2019-12-21 20:59:29 +00:00 committed by GitHub
commit 0b62f8a62f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -589,15 +589,17 @@ module.exports = createReactClass({
_applySearchFilter: function(list, filter) {
if (filter === "") return list;
const fuzzyFilter = utils.removeHiddenChars(filter).toLowerCase();
const lcFilter = filter.toLowerCase();
// apply toLowerCase before and after removeHiddenChars because different rules get applied
// e.g M -> M but m -> n, yet some unicode homoglyphs come out as uppercase, e.g 𝚮 -> H
const fuzzyFilter = utils.removeHiddenChars(lcFilter).toLowerCase();
// case insensitive if room name includes filter,
// or if starts with `#` and one of room's aliases starts with filter
return list.filter((room) => {
if (filter[0] === "#" && room.getAliases().some((alias) => alias.toLowerCase().startsWith(lcFilter))) {
return true;
}
return room.name ? utils.removeHiddenChars(room.name).toLowerCase().includes(fuzzyFilter) : false;
return room.name && utils.removeHiddenChars(room.name.toLowerCase()).toLowerCase().includes(fuzzyFilter);
});
},