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
+22
View File
@@ -77,6 +77,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 = [
@@ -153,6 +154,11 @@ 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) {
@@ -302,15 +308,31 @@ async function loadManufacturers() {
manufacturerSelect.append(createOption(String(manufacturer.id), manufacturer.name));
}
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;