iloveeyjafjalla opened a new pull request, #6617:
URL: https://github.com/apache/rocketmq-dashboard/pull/6617

   ### Which Issue(s) This PR Fixes
   
   The associated bug report will be linked immediately after publication.
   
   ### Brief Description
   
   The navigation-search input treats an IME confirmation Enter as a command to 
open the selected page. Composing arrow keys also change the palette selection 
instead of remaining available to the input method.
   
   Return early from this input's keyboard handler for 
`nativeEvent.isComposing` or the existing Composer-compatible `keyCode === 229` 
fallback. Ordinary arrow navigation and Enter selection keep their current 
behavior. The guard does not cancel the composition event's default action.
   
   This is the MainLayout navigation palette; #6376 addresses the separate 
MetricsExplorer input and #6070 the separate Composer input. [UI Events 
composition 
semantics](https://w3c.github.io/uievents/#events-composition-key-events) 
explain why key events also reach the page while text is being composed.
   
   ### How Did You Test This Change?
   
   Base: `rocketmq-studio` at `779b8c0e7aed2396d3cc72743dcd544ea48e9ae6`; Node 
24.15.0, npm 11.12.1.
   
   - With the unchanged production component and final test fixture: **3 
failures, 1 passing control**. Both composition Enter variants navigated to the 
Settings outlet. A composing ArrowDown changed the selected route to Topic; 
ordinary ArrowDown/Enter correctly navigated in the control.
   - `npm test -- --maxWorkers=1 src/layouts/MainLayout.navigation.test.tsx 
src/layouts/MainLayout.test.tsx src/layouts/navigationSearch.test.ts`: **3 
files, 16/16 passed** after the fix.
   - `npm run lint`: **0 errors, 10 warnings in unchanged files**.
   - `npm run build`: TypeScript, production bundle and license gate passed 
(**133 components, 140 license files**).
   - Changed-file Prettier and `git diff --check` passed; independent review 
examined the actual diff and regression evidence.
   
   The new tests render real MainLayout, Ant Design Modal/Layout and 
MemoryRouter, open the actual search control, and dispatch DOM 
composition/keyboard events into its input. Ant Design motion is disabled only 
in the test provider so visibility preparation does not depend on animation 
completion in jsdom. Two preliminary runs included visibility-preparation 
failures and are excluded from the product-red evidence; only the final 
no-motion run is used. No timeout or production animation behavior was changed.
   
   This verifies component event handling, not native OS/IME or 
physical-browser behavior. No full frontend/backend/Go, live 
broker/database/deployment or remote CI success is claimed. AI assistance 
(Codex) was used for source investigation, implementation, testing and 
independent review.
   
   ### Checklist
   
   - [x] One coherent change; Conventional Commit subject
   - [x] Real component regressions and normal-navigation control named 
`...Test`
   - [x] New test file retains the ASF header; no new UI text
   - [ ] Backend architecture/integration tests: not run (no backend change)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to