fix(ui): one busy-button pattern and one ellipsis glyph #476
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/MAPPS-410-busy-labels"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implements MAPPS-410 (2026-08-04 mokosh-apps UI audit, F18): one busy-indication pattern and one ellipsis glyph. 22 files.
Busy buttons route through the
loadingpropTen buttons that hand-rolled their busy state by swapping their label text (
if saving() { "Saving..." } else { "Save changes" }) now use the sharedButton { loading: <signal> }pattern with a STABLE label; the spinner conveys busy, so the label no longer changes. Six needed theloadingprop added (profile, portal reply, and the four assets.rs bulk/edit/credential/relationship saves); four already hadloadingand just shed the redundant text-swap (onboarding, portal_set_password, login, portal_login). The audit's "manual spinner" cases were the already-presentloadingprop, so no hand-rolled spinner markup remained to remove. Every onclick/disabled/variant/title/type was preserved; no imports changed (all were already the sharedButton).Two sites beyond the audit's list (login and portal_login "Signing in...") were caught by the general text-swap shape and converted too.
One ellipsis glyph in busy/loading labels
31 busy/loading label strings that used the three-ASCII-dot
...now use the single-character…(U+2026), matching the ~32 the codebase already used. Covered: data-fetch placeholders ("Loading comments…", "Searching…"), status checks (system_status "Checking…"), and full-screen transitional/auth states (lib.rs sign-in/redirect/profile-setup, auth_callback "Signing you in…", the account-deleted countdown). Scope was strictly user-visible busy/loading label literals: zero code...(ranges, struct-update, rest patterns, macro paths), zero comments, and thelayout.rsdocument.titlenormalization that compares against a literal"Loading..."on purpose, were touched.Out of scope (tracked)
Non-busy labels (input placeholders like "Search tickets...", menu labels like "Manage templates...") still use
...; standardizing those is tracked in MAPPS-417 so this issue's busy/loading scope stays tight.Verification
Diff-reviewed (no local cargo): all
loadingsignals match their siblingdisabledsignal, labels are stable, no imports orphaned, no em-dash. CI runs fmt/clippy(-D warnings)/wasm-build/tests.#MAPPS-410
Implements MAPPS-410 (2026-08-04 UI audit F18). Ten buttons that swapped their label text to indicate busy now use the shared Button { loading } prop with a stable label (six gain the prop, four already had it and shed the redundant text-swap). Standardizes 31 busy/loading label strings from the three-dot ... to the single-character ellipsis, scoped strictly to user-visible busy/loading literals (no code, comment, range, or the layout.rs title-comparison touched). Non-busy placeholder/menu ellipsis is tracked separately in MAPPS-417. #MAPPS-410