What problem does it solve?
It prevents inconsistent loading and pending UI behavior after code changes, which can cause flicker, stuck buttons, missing route fallbacks, or optimistic updates that don’t recover on errors.
Core Features & Use Cases
- Submit lockout validation: Detects mutation-backed forms where submit buttons are not disabled during pending states.
- Loading convention consistency: Flags cases where a spinner is introduced in places where the app uses skeletons (or vice versa) to reduce jank and UI inconsistency.
- Route pending fallback audit: Finds route loaders that lack a
pendingComponent and may freeze the prior view.
- Optimistic update rollback check: Identifies optimistic cache writes without an
onError rollback to avoid showing changes that never persisted.
- Accessible busy-region verification: Reports missing
aria-busy on visibly substantial pending regions and suggests safe mechanical fixes when boundaries are unambiguous.
Quick Start
Run code-check-loading-states on the latest UI changes and ask it to "check loading states" for submit buttons, route pending fallbacks, optimistic rollback, and async-region busy accessibility.