Skip to content

refactor: theme typing, error UX, a11y, lint config, dev hygiene - #499

Merged
aldbr merged 1 commit into
DIRACGrid:mainfrom
aldbr:split/5-quality-hygiene
Aug 18, 2026
Merged

refactor: theme typing, error UX, a11y, lint config, dev hygiene#499
aldbr merged 1 commit into
DIRACGrid:mainfrom
aldbr:split/5-quality-hygiene

Conversation

@aldbr

@aldbr aldbr commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Part of #494 (stack 5/5, final). Stacked on #498 — until it merges, review the last commit only (refactor:).

Quality and hygiene tail of the stack:

  • ThemeProvider: ThemeMode = "light" | "dark" union replaces string | null (casts gone); render is pure — sessionStorage writes move out of the render phase; storage now records only explicit user choices, making the follow-system-preference branch reachable; dark mode gets palette-aware focused-input colors (previously hardcoded light-mode greys/black);
  • lint config: eslint-plugin-jsx-a11y (recommended) enabled on the components package — where all the interactive UI lives (0 errors after the a11y fixes earlier in the stack); prettier-conflicting formatting rules (indent, semi, comma-dangle) removed from the app/extension configs;
  • README contributing link fixed to the real doc.

After this merges, the stack tree is identical to the original development branch — closes out #494's implementation phase.

🤖 Generated with Claude Code

@aldbr

aldbr commented Jul 14, 2026

Copy link
Copy Markdown
Contributor Author

Per review of #496 (force-pushed): the LoginForm skeleton loading state, error Alert, and Advanced-Options-button removal moved here from #496 (they're error-UX / a11y, not packaging). #496 now keeps only the next/image<img> swap.

@aldbr
aldbr force-pushed the split/5-quality-hygiene branch 7 times, most recently from 92a433f to 184c2a6 Compare July 15, 2026 07:14
Quality and hygiene follow-ups across the workspace:

- ThemeProvider: introduce a ThemeMode union with a type-guarded
  sessionStorage read, keep render pure (storage is only written on an
  explicit user toggle), memoize toggleTheme, and derive outlined-input
  border/label colors for both palette modes; Dashboard tests updated
  for the new persistence semantics
- eslint flat configs (components, app, extensions) tightened, notably
  enabling eslint-plugin-jsx-a11y; the intentional autoFocus in the
  drawer rename fields gains documented disable directives
- README refreshed
@aldbr
aldbr force-pushed the split/5-quality-hygiene branch from 184c2a6 to bfd86c1 Compare August 18, 2026 11:07

@ryuwd ryuwd left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@aldbr
aldbr merged commit 646a10f into DIRACGrid:main Aug 18, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Quality pass: library packaging, Job Monitor performance, state correctness, test coverage

2 participants