diff --git a/frontend/src/admin/sections/TariffsSection.svelte b/frontend/src/admin/sections/TariffsSection.svelte index 95fda92..48734be 100644 --- a/frontend/src/admin/sections/TariffsSection.svelte +++ b/frontend/src/admin/sections/TariffsSection.svelte @@ -107,40 +107,40 @@ .join(" · "); } - function fieldFor(key) { - return settingsFieldMap.get(key) || { key, value: "" }; + function fieldFor(key, fieldMap = settingsFieldMap) { + return fieldMap.get(key) || { key, value: "" }; } - function valueForKey(key) { - if (settingsDirty[key]?.deleted) return ""; - if (Object.prototype.hasOwnProperty.call(settingsDirty, key)) { - return settingsDirty[key].value; + function valueForKey(key, dirty = settingsDirty, fieldMap = settingsFieldMap) { + if (dirty[key]?.deleted) return ""; + if (Object.prototype.hasOwnProperty.call(dirty, key)) { + return dirty[key].value; } - return fieldFor(key).value ?? ""; + return fieldFor(key, fieldMap).value ?? ""; } - function boolValue(key) { - return Boolean(valueForKey(key)); + function boolValue(key, dirty = settingsDirty, fieldMap = settingsFieldMap) { + return Boolean(valueForKey(key, dirty, fieldMap)); } function setSetting(key, value) { settingsStore.markDirty(key, value); } - function isSettingDirty(key) { - return Boolean(settingsDirty[key]); + function isSettingDirty(key, dirty = settingsDirty) { + return Boolean(dirty[key]); } - function dirtyCount(keys) { - return (keys || []).filter((key) => isSettingDirty(key)).length; + function dirtyCount(keys, dirty = settingsDirty) { + return (keys || []).filter((key) => isSettingDirty(key, dirty)).length; } function resetSetting(key) { settingsStore.clearDirty(key); } - function csvList(key) { - return String(valueForKey(key) || "") + function csvList(key, dirty = settingsDirty, fieldMap = settingsFieldMap) { + return String(valueForKey(key, dirty, fieldMap) || "") .split(",") .map((item) => item.trim()) .filter(Boolean); @@ -230,8 +230,12 @@