fix(js): restore disabled controls after pending

Remember each control's pre-request disabled state and keep a small pending count so data-slhx-disable-while-pending does not accidentally enable controls that were disabled before the request.

req: convention/007
This commit is contained in:
slhx agent
2026-06-01 20:12:29 +02:00
parent 28d1856dd7
commit 8e39d6c4ac
2 changed files with 23 additions and 2 deletions
+5 -1
View File
@@ -61,7 +61,11 @@ fn runtime_toggles_pending_conventions_around_requests() {
assert!(source.contains("el.hasAttribute(\"data-slhx-disable-while-pending\")"));
assert!(source.contains("if (isDisableControl(el)) controls.push(el)"));
assert!(source.contains("forEachElement(el, (child) => { if (isDisableControl(child)) controls.push(child); })"));
assert!(source.contains("c.disabled = on"));
assert!(source.contains("const disabledStates = new WeakMap()"));
assert!(source.contains("function toggleDisabled(control, on)"));
assert!(source.contains("else disabledStates.set(control, { count: 1, disabled: control.disabled })"));
assert!(source.contains("control.disabled = state.disabled"));
assert!(source.contains("controls.forEach((c) => toggleDisabled(c, on))"));
assert!(source.contains("showPending(target, true)"));
assert!(source.contains("showPending(target, false)"));
}