diff --git a/packages/rocketchat-ui-sidenav/side-nav/toolbar.js b/packages/rocketchat-ui-sidenav/side-nav/toolbar.js index d44f7fc0198..30ea5727fe3 100644 --- a/packages/rocketchat-ui-sidenav/side-nav/toolbar.js +++ b/packages/rocketchat-ui-sidenav/side-nav/toolbar.js @@ -69,7 +69,7 @@ const getFromServer = (cb) => { }); }; -const getFromServerThrottled = _.throttle(getFromServer, 500); +const getFromServerDebounced = _.debounce(getFromServer, 500); Template.toolbar.helpers({ results() { @@ -87,7 +87,7 @@ Template.toolbar.helpers({ isLoading: isLoading, getFilter: function(collection, filter, cb) { filterText = filter; - resultsFromClient = collection.find({name: new RegExp((RegExp.escape(filter)), 'i'), rid: {$ne: Session.get('openedRoom')}}, {limit: 10, sort: {unread: -1, ls: -1}}).fetch(); + resultsFromClient = collection.find({name: new RegExp((RegExp.escape(filter)), 'i'), rid: {$ne: Session.get('openedRoom')}}, {limit: 20, sort: {unread: -1, ls: -1}}).fetch(); const resultsFromClientLength = resultsFromClient.length; usernamesFromClient = [Meteor.user().username]; @@ -100,7 +100,9 @@ Template.toolbar.helpers({ cb(resultsFromClient); - getFromServerThrottled(cb); + if (filterText.trim() !== '' && resultsFromClient.length < 20) { + getFromServerDebounced(cb); + } }, getValue: function(_id, collection, records) { const doc = _.findWhere(records, {_id: _id});