added remove and copy button

This commit is contained in:
SemvdH
2025-11-18 21:08:11 +01:00
parent bddebec28b
commit 230ecf2b6b
4 changed files with 43 additions and 16 deletions

View File

@@ -135,7 +135,7 @@
});
}
async function addCar() {
async function addCar(preselectedCar = null, preselectedSkin = null) {
const wrapper = document.createElement("div");
wrapper.style.marginTop = "12px";
wrapper.className = "car-block";
@@ -147,6 +147,18 @@
skinSelect.className = "skin-select";
skinSelect.style.marginLeft = "10px";
const delBtn = document.createElement("button");
delBtn.textContent = "Remove";
delBtn.style.marginLeft = "10px";
delBtn.onclick = () => wrapper.remove();
const copyBtn = document.createElement("button");
copyBtn.textContent = "Copy";
copyBtn.style.marginLeft = "10px";
copyBtn.onclick = () => {
addCar(carSelect.value, skinSelect.value);
};
const img = document.createElement("img");
img.className = "skin-preview";
img.style.display = "block";
@@ -155,6 +167,8 @@
wrapper.appendChild(carSelect);
wrapper.appendChild(skinSelect);
wrapper.appendChild(copyBtn);
wrapper.appendChild(delBtn);
wrapper.appendChild(img);
carList.appendChild(wrapper);
@@ -215,8 +229,18 @@
}
});
// immediately load skins for first car
loadSkins(cars[0].name);
if (preselectedCar) {
carSelect.value = preselectedCar;
loadSkins(preselectedCar);
if (preselectedSkin) {
skinSelect.value = preselectedSkin;
const car = cars.find(c => c.name === preselectedCar);
const cfg = car.skins.find(x => x.name === preselectedSkin);
updateImage(cfg ? cfg.image : "");
}
} else {
loadSkins(cars[0].name);
}
}
addCarBtn.addEventListener("click", addCar);