3x-ui/frontend/src/pages
MHSanaei bb20cf506b
fix(frontend): blur active element on every tab switch path (B21 follow-up)
The previous B21 patch only blurred on user-initiated tab clicks via
onTabChange. Two other paths still set activeKey while a JSON-tab
input retained focus:

- importLink: after a successful share-link parse, setActiveKey('1')
  switched to the form tab while the user's focus was still on the
  Input.Search they just pressed Enter in. Chrome logged the same
  "Blocked aria-hidden" warning because the panel they were leaving
  became aria-hidden synchronously, with their input still focused.

- onTabChange entering the JSON tab: also did a bare setActiveKey
  with no blur, so going from a focused form input INTO the JSON
  tab could trip the warning in reverse.

Fix: centralized switchTab(key) that blurs document.activeElement
sync before calling setActiveKey. Every internal tab transition
(importLink, onTabChange both directions) now routes through it.
The single setActiveKey('1') in the open-modal useEffect is left as
a plain setter because there's no focused input at modal-open time.
2026-05-26 20:32:03 +02:00
..
api-docs refactor(frontend): align hysteria with new docs + drop hysteria2 protocol 2026-05-26 17:49:37 +02:00
clients refactor(frontend): align hysteria with new docs + drop hysteria2 protocol 2026-05-26 17:49:37 +02:00
inbounds refactor(frontend): retire class-based xray models (Step 5) 2026-05-26 19:49:42 +02:00
index refactor(frontend): retire class-based xray models (Step 5) 2026-05-26 19:49:42 +02:00
login feat(frontend): add Zod runtime validation at API boundary 2026-05-25 16:02:27 +02:00
nodes feat(frontend): drive form validation from Zod schemas 2026-05-25 16:41:56 +02:00
settings feat(frontend): block invalid settings saves with Zod pre-save check 2026-05-25 17:55:21 +02:00
sub Migrate frontend models/api/utils to TypeScript and modernize AntD theming (#4563) 2026-05-25 14:34:53 +02:00
xray fix(frontend): blur active element on every tab switch path (B21 follow-up) 2026-05-26 20:32:03 +02:00