diff --git a/backend/static/js/components/employeesList.js b/backend/static/js/components/employeesList.js index a3f29f40..24ec4f51 100644 --- a/backend/static/js/components/employeesList.js +++ b/backend/static/js/components/employeesList.js @@ -44,8 +44,8 @@ export class EmployeesList { this.hasMore = true; try { - await this.loadEmployees(false); // append = false - this.render(false); // append = false + const employees = await this.loadEmployees(false); // append = false + this.render(employees, false); // передаем загруженные записи this.updateCount(); this.setupInfiniteScroll(); } catch (error) { @@ -102,8 +102,8 @@ export class EmployeesList { }); try { - await this.loadEmployees(true); // append = true - this.render(true); // append = true + const newEmployees = await this.loadEmployees(true); // append = true + this.render(newEmployees, true); // передаем только новые записи this.updateCount(); } catch (error) { console.error('Failed to load more employees:', error); @@ -176,6 +176,9 @@ export class EmployeesList { this.loading = false; this.hideLoadingSpinner(); + + // Возвращаем только новые записи для рендеринга + return newEmployees; } catch (error) { this.loading = false; this.hideLoadingSpinner(); @@ -212,14 +215,24 @@ export class EmployeesList { /** * Рендеринг списка сотрудников + * @param {Array} employees - массив сотрудников для рендеринга + * @param {boolean} append - добавить к существующим или заменить */ - render(append = false) { - if (this.employees.length === 0 && !append) { - this.container.innerHTML = '