Persist selected manufacturer across reloads
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user