Add a 'top-of-search' marker

Ugly as hell, pending better suggestions.

This fixes https://github.com/vector-im/vector-web/issues/547
This commit is contained in:
Richard van der Hoff 2015-12-21 12:39:10 +00:00
parent ff6d9454fd
commit 765e5bdeb1

View file

@ -521,6 +521,7 @@ module.exports = React.createClass({
searchResults: [], searchResults: [],
searchHighlights: [], searchHighlights: [],
searchCount: null, searchCount: null,
searchCanPaginate: null,
}); });
this.savedSearchScrollState = {atBottom: true}; this.savedSearchScrollState = {atBottom: true};
@ -579,6 +580,7 @@ module.exports = React.createClass({
searchHighlights: highlights, searchHighlights: highlights,
searchResults: events, searchResults: events,
searchCount: results.count, searchCount: results.count,
searchCanPaginate: !!(results.next_batch),
}); });
self.nextSearchBatch = results.next_batch; self.nextSearchBatch = results.next_batch;
}, function(error) { }, function(error) {
@ -639,6 +641,13 @@ module.exports = React.createClass({
var lastRoomId; var lastRoomId;
if (this.state.searchCanPaginate === false) {
ret.push(<li key="search-top-marker">
<h2 className="mx_RoomView_topMarker">End of search results</h2>
</li>
);
}
for (var i = this.state.searchResults.length - 1; i >= 0; i--) { for (var i = this.state.searchResults.length - 1; i >= 0; i--) {
var result = this.state.searchResults[i]; var result = this.state.searchResults[i];
var mxEv = new Matrix.MatrixEvent(result.result); var mxEv = new Matrix.MatrixEvent(result.result);