commit 54acb0762061fdef3329ae1ff12c9d24fa39d913
parent 1c0c3db6e18930dcb14eaff020ec797c704ea74c
Author: Jacob R. Edwards <jacob@jacobedwards.org>
Date: Sun, 13 Oct 2024 18:29:32 -0700
Fix furniture menu variety Reset button
Fix the button's value being overwritten and also disable to reset
button when it wouldn't have any effect.
Diffstat:
1 file changed, 22 insertions(+), 6 deletions(-)
diff --git a/files/floorplans/floorplan/main.js b/files/floorplans/floorplan/main.js
@@ -1002,15 +1002,12 @@ function furnitureMenuX(editor, pointOrID) {
if (cnt === 1) {
v = menuItem("variety", "Variety", { attributes: { type: "button", value: "Reset" } })
} else {
- v = menuItem("variety", "Variety", { enum: vars, attributes: { value: editor.varietyFrom(params) } })
+ v = menuItem("variety", "Variety", { enum: vars })
}
let c = makeItem(v)
items[keys.variety].container.replaceWith(c)
items[keys.variety] = v
- if (cnt > 1) {
- items[keys.variety].input.value = editor.varietyFrom(params)
- }
-
+ updateVariety()
fromVariety(items[keys.type].input.value, init ? null : defKey(vars))
if (cnt > 1) {
c.addEventListener("input", function(ev) {
@@ -1019,6 +1016,7 @@ function furnitureMenuX(editor, pointOrID) {
} else {
c.addEventListener("click", function() {
fromVariety(items[keys.type].input.value, defKey(vars))
+ updateVariety()
})
}
}
@@ -1035,6 +1033,24 @@ function furnitureMenuX(editor, pointOrID) {
}
}
}
+ const updateVariety = function() {
+ let vars = editor.furniture_types[params.type].varieties
+ let cnt = 0
+ for (let k in vars) {
+ if (++cnt > 1) {
+ break
+ }
+ }
+ if (cnt > 1) {
+ items[keys.variety].input.value = editor.varietyFrom(params)
+ } else if (cnt === 1) {
+ if (editor.varietyFrom(params)) {
+ items[keys.variety].input.setAttribute("disabled", true)
+ } else {
+ items[keys.variety].input.removeAttribute("disabled")
+ }
+ }
+ }
let menu = makeMenu(items)
items[keys.type].input.value = params.type
@@ -1056,7 +1072,7 @@ function furnitureMenuX(editor, pointOrID) {
}
ev.target.reportValidity()
params[ev.target.name] = u
- items[keys.variety].input.value = editor.varietyFrom(params)
+ updateVariety()
} else {
if (ev.target.name === "style" && ev.target.value === "default") {
params[ev.target.name] = null