From 1678fd21005357a73b1d390851ed6e5c2df22ddc Mon Sep 17 00:00:00 2001 From: Raffael Meyer <14891507+barredterra@users.noreply.github.com> Date: Tue, 27 Feb 2024 08:38:26 +0100 Subject: [PATCH] perf: remove specific elements instead of re-rendering entire list (#25078) (cherry picked from commit b3ff1f9fcc1de1d71e92a2c726283f1418f73656) --- frappe/public/js/frappe/list/list_view.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/frappe/public/js/frappe/list/list_view.js b/frappe/public/js/frappe/list/list_view.js index a2ecf1d2019f..9fdac72ebdca 100644 --- a/frappe/public/js/frappe/list/list_view.js +++ b/frappe/public/js/frappe/list/list_view.js @@ -1437,8 +1437,13 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList { // this doc was changed and should not be visible // in the listview according to filters applied // let's remove it manually - this.data = this.data.filter((d) => names.indexOf(d.name) === -1); - this.render_list(); + this.data = this.data.filter((d) => !names.includes(d.name)); + for (let name of names) { + this.$result + .find(`.list-row-checkbox[data-name='${name}']`) + .closest(".list-row-container") + .remove(); + } return; }