fix(frontend): code-review polish — replaceState, arrow-key nav, TabId, comment

Fix 4: useHashTab navigate() uses history.replaceState instead of
window.location.hash assignment — no spurious history entries, no
anchor-jump scroll side-effect.
Fix 5: Tabs ArrowLeft/ArrowRight keyboard nav (WAI-ARIA tabs pattern).
Fix 6: TabId union type in EngagementDetailPage, cast from string for
type-safe switch on activeTab without breaking Tabs.onChange signature.
Fix 7: intentional comment on UsersAdminPage reset-password aerated row.
Tests: 236/236 (+2 arrow-key assertions in Tabs.test.tsx).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Knacky
2026-06-21 22:20:51 +02:00
parent 790ced4204
commit 11ce3cfb86
6 changed files with 36 additions and 4 deletions

View File

@@ -22,7 +22,7 @@ describe('useHashTab', () => {
expect(result.current[0]).toBe('simulations');
});
it('navigate() updates activeId and sets location.hash', () => {
it('navigate() updates activeId and sets hash via replaceState (no history entry)', () => {
const { result } = renderHook(() => useHashTab('schedule'));
act(() => {
result.current[1]('description');