Persist selected manufacturer across reloads

This commit is contained in:
2026-08-05 18:58:05 +02:00
parent c58084cc86
commit e6acb21d65
2 changed files with 43 additions and 0 deletions
+21
View File
@@ -75,6 +75,7 @@ let loadRequestId = 0;
let applicationMode = "dry-run";
let databaseConnectionState = "unknown";
const localDraftKey = "catalog-maker:current-product-draft:v2";
const selectedManufacturerKey = "catalog-maker:selected-manufacturer";
let localDraftProductKey = "";
const fieldNames = [
"id_manufacturer",
@@ -146,6 +147,12 @@ await loadManufacturers();
await loadLanguages();
languageSelect.addEventListener("change", syncLanguagePickerLabel);
manufacturerSelect.addEventListener("change", () => {
if (manufacturerSelect.value) {
localStorage.setItem(selectedManufacturerKey, manufacturerSelect.value);
}
else {
localStorage.removeItem(selectedManufacturerKey);
}
syncManufacturerPickerLabel();
closeManufacturerPicker();
if (manufacturerSelect.value) {
@@ -289,15 +296,29 @@ async function loadManufacturers() {
}
if (data.message)
manufacturerSelect.append(createOption("", data.message));
restoreSelectedManufacturer();
syncManufacturerPickerLabel();
renderManufacturerOptions();
}
catch (error) {
manufacturerSelect.append(createOption("", error.message || "Local DB is not configured."));
restoreSelectedManufacturer();
syncManufacturerPickerLabel();
renderManufacturerOptions();
}
}
function restoreSelectedManufacturer() {
const savedManufacturerId = localStorage.getItem(selectedManufacturerKey);
if (!savedManufacturerId)
return;
const savedOption = [...manufacturerSelect.options].find((option) => option.value === savedManufacturerId);
if (savedOption) {
manufacturerSelect.value = savedManufacturerId;
}
else {
localStorage.removeItem(selectedManufacturerKey);
}
}
function toggleManufacturerPicker() {
if (manufacturerMenu.hidden) {
manufacturerMenu.hidden = false;