diff --git a/src/main/js/plugin-manager-ui.js b/src/main/js/plugin-manager-ui.js index 68ced0d0b0..a9367ea2e5 100644 --- a/src/main/js/plugin-manager-ui.js +++ b/src/main/js/plugin-manager-ui.js @@ -3,12 +3,19 @@ import debounce from "lodash/debounce"; import pluginManagerAvailable from "./templates/plugin-manager/available.hbs"; import pluginManager from "./api/pluginManager"; +var latestRequestId = 0; + function applyFilter(searchQuery) { // debounce reduces number of server side calls while typing + var requestId = ++latestRequestId; pluginManager.availablePluginsSearch( searchQuery.toLowerCase().trim(), 50, function (plugins) { + // Discard stale responses so they don't overwrite results for a newer query + if (requestId !== latestRequestId) { + return; + } var pluginsTable = document.getElementById("plugins"); var tbody = pluginsTable.querySelector("tbody"); var admin = pluginsTable.dataset.hasadmin === "true";