Repository navigation
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a focused web bug fix that corrects composer caret placement and prevents only closed mounted overlays from suppressing launcher shortcuts. Production changes are small, localized, and accompanied by targeted regression tests. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (4)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughThe changes update launcher shortcut detection so closed mounted popups do not block shortcuts. The composer now focuses through the ProseMirror view, with a test for caret placement after text insertion. ChangesComposer input and launcher shortcuts
Priority: ⬆️ High Estimated code review effort: 2 (Simple) | ~15 minutes Change: Bug fix · Severity of issue fixed: High Suggested reviewers: Merge Risk: ⚪ Minimal · up to This change stops closed popups from blocking launcher letter shortcuts and keeps the caret at the right position when typing into an unfocused composer. No merge-blocking risk was found. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Description checkExplanation The description explains the problem, change, issue reference, verification results, limitations, and UI evidence. It does not explicitly document maintainer approval or explain why the focused fix qualifies without prior approval.
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
… mounted Closed keepMounted popups matched by slot alone, so the chat header actions menu blocked every launcher letter on an open thread. Popup selectors now match only while open or animating closed.
2106c6c to
e48b5d1
Compare
What Changed
Right-panel launcher letters ignore popups that stay mounted while closed. Each overlay selector matches only while open or animating closed, through
launcherShortcutBlockedByOverlay. The Mod+T tab menu uses the same helper and still skips the check while its own menu is open.Why
Fixes #13403. A closed
keepMountedpopup matched by slot alone, so launcher letters (T, B, F, M, …) never opened a surface. The composer caret half of the original change landed upstream in #14595.Verification
Base:
upstream/main73e097b8c86000ddc4b38926ba86e1595109d78eHead:
e48b5d1a9b6500d22e36b69af58e0a875da33a4bNode v24.13.1, Linux 6.12.94+ x86_64.
vp test run apps/web/src/components/RightPanelTabs.launcherShortcuts.test.ts— 1 file, 3 tests passed.vp test run apps/web/src/components/RightPanelTabs.keyboard.test.tsx apps/web/src/components/RightPanelTabs.launcherShortcuts.test.ts— 2 files, 12 tests passed.vp run --filter @t3tools/web test— 468 files, 6493 tests passed.vp run --filter @t3tools/web typecheck— passed.vp run knip:check— passed.vp check— 0 errors, 893 warnings in 4928 files.Manual check: with a thread open, the right-panel launcher visible, nothing focused, and a closed
menu-popupin the DOM, pressing F on upstream73e097b8cleaves “Open a surface” up and typesfinto the composer. On this commit, F opens Files (README.md,VISIBLE-FILE.txt) and the composer stays empty.Limitations: the old chat-header actions menu is no longer rendered, so a fresh thread does not contain that node by itself. The capture mounts a hidden closed
menu-popupto exercise the selector that upstream still leaves unguarded. Mobile was not exercised.UI Changes
Before

[before.mp4 (download)](https://raw.githubusercontent.com/macodev00/t3code/6b86579ad064c0da40f5b60204ea0d815f859c9a/issue-13403/before/recording.mp4)After

[after.mp4 (download)](https://raw.githubusercontent.com/macodev00/t3code/6b86579ad064c0da40f5b60204ea0d815f859c9a/issue-13403/after/recording.mp4)Checklist