Use all known rooms instead of public rooms
parent
ddab8d7b5c
commit
20d65535c0
|
@ -248,7 +248,7 @@ module.exports = React.createClass({
|
||||||
results.push({
|
results.push({
|
||||||
room_id: r.room_id,
|
room_id: r.room_id,
|
||||||
avatar_url: r.avatar_url,
|
avatar_url: r.avatar_url,
|
||||||
name: r.name,
|
name: r.name || r.canonical_alias,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
this._processResults(results, query);
|
this._processResults(results, query);
|
||||||
|
@ -265,30 +265,34 @@ module.exports = React.createClass({
|
||||||
},
|
},
|
||||||
|
|
||||||
_doRoomSearch: function(query) {
|
_doRoomSearch: function(query) {
|
||||||
MatrixClientPeg.get().publicRooms({
|
const lowerCaseQuery = query.toLowerCase();
|
||||||
filter: {
|
const rooms = MatrixClientPeg.get().getRooms();
|
||||||
generic_search_term: query,
|
|
||||||
},
|
|
||||||
}).then((resp) => {
|
|
||||||
const results = [];
|
const results = [];
|
||||||
resp.chunk.forEach((r) => {
|
rooms.forEach((room) => {
|
||||||
|
const nameEvent = room.currentState.getStateEvents('m.room.name', '');
|
||||||
|
const topicEvent = room.currentState.getStateEvents('m.room.topic', '');
|
||||||
|
const name = nameEvent ? nameEvent.getContent().name : '';
|
||||||
|
const canonicalAlias = room.getCanonicalAlias();
|
||||||
|
const topic = topicEvent ? topicEvent.getContent().topic : '';
|
||||||
|
|
||||||
|
const nameMatch = (name || '').toLowerCase().includes(lowerCaseQuery);
|
||||||
|
const aliasMatch = (canonicalAlias || '').toLowerCase().includes(lowerCaseQuery);
|
||||||
|
const topicMatch = (topic || '').toLowerCase().includes(lowerCaseQuery);
|
||||||
|
if (!(nameMatch || topicMatch || aliasMatch)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const avatarEvent = room.currentState.getStateEvents('m.room.avatar', '');
|
||||||
|
const avatarUrl = avatarEvent ? avatarEvent.getContent().url : undefined;
|
||||||
results.push({
|
results.push({
|
||||||
room_id: r.room_id,
|
room_id: room.roomId,
|
||||||
avatar_url: r.avatar_url,
|
avatar_url: avatarUrl,
|
||||||
name: r.name,
|
name: name || canonicalAlias,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
this._processResults(results, query);
|
this._processResults(results, query);
|
||||||
}).catch((err) => {
|
|
||||||
console.error('Error whilst searching public rooms: ', err);
|
|
||||||
this.setState({
|
|
||||||
searchError: err.errcode ? err.message : _t('Something went wrong!'),
|
|
||||||
});
|
|
||||||
}).done(() => {
|
|
||||||
this.setState({
|
this.setState({
|
||||||
busy: false,
|
busy: false,
|
||||||
});
|
});
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_doUserDirectorySearch: function(query) {
|
_doUserDirectorySearch: function(query) {
|
||||||
|
|
Loading…
Reference in New Issue