You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Red-team frontend clusters (a11y + UX + code quality), three coordinated passes: Accessibility: - DataTable clickable rows keyboard-operable (role=button, tabindex, Enter/Space). - <main> landmark + skip link; icon-only buttons get aria-labels; inputs relying on placeholder alone get aria-labels; AWS-ranking link is a real <button>; Login fields wrapped in a <form> so Enter submits from either field; toasts role=alert for errors (urgency not by color alone). UX safety: - 'Notify all' and reminder 'Send' now behind ConfirmDialogs naming the count/ client; document action bar disables while an action is in flight (no double-submit dupes); SendDialog surfaces why a send is blocked instead of failing silently; client search + ticket search debounced (~300ms); inline Client-360 edit failures surface via toast, not an off-screen banner; LivePreview gets a real Retry; destructive client-status transitions confirm first. Code quality: - ErrorBoundary wraps the app (a render throw no longer white-screens). - useData clears stale data on dep change (no record flashing under a new id). - Shared ErrorBoundary/SecretField/Pager components extracted; Pager adopted in Documents; write-call api types tightened off Record<string,unknown>. typecheck clean (root + both workspaces), web build clean, web tests 4/4, full suite 388 green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
4 days ago | |
|---|---|---|
| .. | ||
| components | 4 days ago | |
| pages | 4 days ago | |
| Layout.tsx | 4 days ago | |
| Login.tsx | 4 days ago | |
| api.ts | 4 days ago | |
| app.css | 4 days ago | |
| main.tsx | 4 days ago | |
| nav.ts | 4 days ago | |
| pulse.ts | 5 days ago | |