This commit is contained in:
Mateusz Gruszczyński
2025-08-16 13:28:09 +02:00
parent cd8d418371
commit 2edbd6475f
2 changed files with 17 additions and 12 deletions

View File

@@ -6,13 +6,7 @@ document.addEventListener('DOMContentLoaded', function () {
const modalBody = modal?.querySelector('.modal-body');
function normalize(str) {
return str
? str.normalize("NFD")
.replace(/[\u0300-\u036f]/g, "")
.replace(/\s+/g, ' ')
.trim()
.toLowerCase()
: '';
return str?.trim().toLowerCase() || '';
}
let sortMode = 'popularity';
@@ -69,7 +63,7 @@ document.addEventListener('DOMContentLoaded', function () {
try {
const res = await fetch(`/all_products?sort=${sortMode}&limit=${limit}&offset=${offset}`);
const data = await res.json();
const products = data.products || data.allproducts || [];
const products = data.products || [];
if (products.length < limit) reachedEnd = true;
allProducts = reset ? products : allProducts.concat(products);
@@ -114,12 +108,23 @@ document.addEventListener('DOMContentLoaded', function () {
function renderProducts(products) {
addedProducts = getAlreadyAddedProducts();
products.forEach(name => {
if (typeof name === "object" && name.name) name = name.name;
const existingNames = new Set();
document.querySelectorAll('#mass-add-list li').forEach(li => {
const name = li.querySelector('span')?.textContent;
if (name) existingNames.add(normalize(name));
});
products.forEach(product => {
const name = typeof product === "object" ? product.name : product;
const normName = normalize(name);
if (existingNames.has(normName)) return;
existingNames.add(normName);
const li = document.createElement('li');
li.className = 'list-group-item d-flex justify-content-between align-items-center bg-dark text-light';
if (addedProducts.has(normalize(name))) {
if (addedProducts.has(normName)) {
const nameSpan = document.createElement('span');
nameSpan.textContent = name;
li.appendChild(nameSpan);