Skip to content

Fix group mention candidate scrolling - #927

Draft
Y1fe1Zh0u wants to merge 1 commit into
dataelement:mainfrom
Y1fe1Zh0u:fix/group-mention-list-scroll
Draft

Fix group mention candidate scrolling#927
Y1fe1Zh0u wants to merge 1 commit into
dataelement:mainfrom
Y1fe1Zh0u:fix/group-mention-list-scroll

Conversation

@Y1fe1Zh0u

Copy link
Copy Markdown
Collaborator

Summary

  • render every filtered group mention candidate inside the bounded popup instead of truncating the list at eight entries
  • keep the keyboard-highlighted candidate visible by scrolling only the mention popup
  • contain popup overscroll so reaching the list edge does not move the surrounding group chat
  • add a regression contract for pointer and keyboard scrolling

Root cause

The mention picker capped its result set at eight members, so later members could never be reached. Arrow-key navigation also changed the highlighted index without synchronizing the popup scroll position, allowing the active option to move outside the visible area.

User impact

Users can now reach and select all matching group members with a mouse, trackpad, touch scrolling, or the arrow keys while composing an @ mention.

Validation

  • cd frontend && npm test — 89 tests passed
  • cd frontend && npm run build — TypeScript and Vite production build passed
  • Playwright browser check with 12 mocked group members:
    • mouse wheel moved the popup from scrollTop=0 to 178
    • ten ArrowDown presses highlighted member 11 and moved the popup to scrollTop=139

Not tested

  • live backend WebSocket traffic; it is independent of the local mention-candidate picker

The mention picker stopped at eight results and keyboard navigation could move the active candidate outside the visible popup. Keep all filtered members in the bounded list and synchronize its local scroll position with the highlighted option.

Constraint: Preserve existing structured mention identity and IME behavior.

Rejected: Keep the eight-candidate cap | members beyond the cap would remain unreachable by scrolling.

Confidence: high

Scope-risk: narrow

Reversibility: clean

Directive: Keep keyboard highlight changes synchronized with the mention popup scroll position.

Tested: Frontend npm test (89 passed); npm run build; Playwright with 12 mocked members, mouse wheel and keyboard scrolling.

Not-tested: Live backend WebSocket behavior; unrelated to the local candidate picker.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant