Use all known rooms instead of public rooms

pull/21833/head
Luke Barnard 2017-09-26 17:11:54 +01:00
parent ddab8d7b5c
commit 20d65535c0
1 changed files with 27 additions and 23 deletions

View File

@ -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, const results = [];
}, rooms.forEach((room) => {
}).then((resp) => { const nameEvent = room.currentState.getStateEvents('m.room.name', '');
const results = []; const topicEvent = room.currentState.getStateEvents('m.room.topic', '');
resp.chunk.forEach((r) => { const name = nameEvent ? nameEvent.getContent().name : '';
results.push({ const canonicalAlias = room.getCanonicalAlias();
room_id: r.room_id, const topic = topicEvent ? topicEvent.getContent().topic : '';
avatar_url: r.avatar_url,
name: r.name, const nameMatch = (name || '').toLowerCase().includes(lowerCaseQuery);
}); const aliasMatch = (canonicalAlias || '').toLowerCase().includes(lowerCaseQuery);
}); const topicMatch = (topic || '').toLowerCase().includes(lowerCaseQuery);
this._processResults(results, query); if (!(nameMatch || topicMatch || aliasMatch)) {
}).catch((err) => { return;
console.error('Error whilst searching public rooms: ', err); }
this.setState({ const avatarEvent = room.currentState.getStateEvents('m.room.avatar', '');
searchError: err.errcode ? err.message : _t('Something went wrong!'), const avatarUrl = avatarEvent ? avatarEvent.getContent().url : undefined;
}); results.push({
}).done(() => { room_id: room.roomId,
this.setState({ avatar_url: avatarUrl,
busy: false, name: name || canonicalAlias,
}); });
}); });
this._processResults(results, query);
this.setState({
busy: false,
});
}, },
_doUserDirectorySearch: function(query) { _doUserDirectorySearch: function(query) {