feat(issue-detail): add jump controls#2992
Conversation
|
@get6 is attempting to deploy a commit to the IndexLabs Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Pull request overview
Adds a floating “jump” control to the Issue Detail timeline to help users quickly navigate long activity threads, including i18n strings and regression tests.
Changes:
- Introduces a single floating jump button that toggles between “jump to latest activity” and “jump to top” based on scroll position, and hides while chat is open.
- Adds English and zh-Hans locale strings for the jump control labels.
- Adds regression tests covering the jump control behavior and chat-open hidden state.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| packages/views/locales/zh-Hans/issues.json | Adds zh-Hans labels for jump-to-top / jump-to-latest. |
| packages/views/locales/en/issues.json | Adds English labels for jump-to-top / jump-to-latest. |
| packages/views/issues/components/issue-detail.tsx | Implements scroll-state tracking and renders the floating jump control. |
| packages/views/issues/components/issue-detail.test.tsx | Adds tests validating jump control behavior and chat-open hiding. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| scrollContainerEl.scrollTo({ | ||
| top: isNearScrollBottom ? 0 : scrollContainerEl.scrollHeight, |
|
Addressed the Copilot review feedback in
Validation:
|
5ebe1e9 to
7c559a8
Compare
|
Adjusted the jump control placement after local UX feedback: the floating button now sits higher above the bottom composer area instead of hugging the lower edge. Verified with issue-detail tests and typecheck. |
|
Updated the jump control positioning based on UX feedback: it now uses viewport-level positioning () like the AI chat FAB instead of being anchored inside the issue content panel, and stacks just above the chat button. Verified issue-detail tests and typecheck. |
|
Correction/clarification: the jump control now uses viewport-level positioning (fixed right-2) like the AI chat FAB instead of being anchored inside the issue content panel, and stacks just above the chat button. Verified issue-detail tests and typecheck. |
|
Fine-tuned the jump button relative to the AI chat FAB: kept the vertical stack, and shifted the smaller jump button to right-2.5 so its center aligns with the chat button center (chat FAB is size-10/right-2; jump is size-9/right-2.5). Verified issue-detail tests and typecheck. |
764639f to
6bc2df3
Compare
What does this PR do?
Adds a one-click jump control to the issue detail page for long activity/comment threads. The control keeps the issue detail page document-shaped instead of changing
react-virtuosofollow behavior: it only appears when the page is actually scrollable, shows a single contextual direction, and stays secondary to the global Chat FAB. Desktop and mobile demo videos are included below to show the final placement and interaction.Thinking path: issue detail currently has a custom
scrollContainerElfor the timeline/document area, while Chat FAB already owns the primary bottom-right action. A small contextual control above that FAB solves the long-thread navigation pain without introducing competing primary actions or auto-scroll behavior that would make issue detail feel like chat.Related Issue
Closes #2726
Type of Change
Changes Made
packages/views/issues/components/issue-detail.tsx↓/ “Jump to latest activity” when not near the bottom.↑/ “Jump to top” when near the bottom.packages/views/issues/components/issue-detail.test.tsxpackages/views/locales/en/issues.jsonpackages/views/locales/zh-Hans/issues.jsonHow to Test
pnpm --filter @multica/views exec vitest run issues/components/issue-detail.test.tsx.pnpm --filter @multica/views typecheck.pnpm --filter @multica/views lint.Checklist
apps/web/features/landing/i18n/) and relevant docs (apps/docs/content/docs/)apps/docs/content/docs/developers/conventions.zh.mdx(terminology, mixed-rule fortask/issue/skill)Risk: low-to-moderate UI risk. The control is scoped to issue detail, uses the existing scroll container, and avoids changing virtualized timeline follow behavior. Main risk is visual overlap on small screens; it is positioned above the existing Chat FAB and hidden when chat is open. The attached desktop/mobile videos cover the expected placement and interaction.
Docs: no product docs update needed; this is a small issue-detail affordance rather than a documented feature surface.
Screenshots/videos: desktop and mobile demos are included below.
AI Disclosure
AI tool used: Multica Agent / Hermes
Prompt / approach:
Implemented from the linked feature issue and live product context: preserve issue detail as a document-shaped page, avoid Chat FAB conflict, add one contextual jump control, and validate with targeted unit tests plus typecheck/lint.
Screenshots (optional)
Desktop
Download desktop video
Mobile
Download mobile video