Pin docs table grid picker selection at MAX_SIZE on overshoot#203
Conversation
Previously, when the user dragged the table-insert grid picker out past the right or bottom edge, the hover state reset to (-1, -1) and the highlighted region collapsed back to the empty state. This made it impossible to land on the maximum 10x10 selection reliably — a slight overshoot would force the user to re-enter and stop precisely on the last cell. Now the mouseLeave handler checks the exit edge: if the pointer leaves past the right/bottom of the grid, hover is pinned to the MAX_SIZE-1 boundary on that axis instead of being reset. Leaving via the top or left still resets, since that direction has no selection-overshoot risk. Co-Authored-By: Claude Opus 4.7 <[email protected]>
📝 WalkthroughWalkthroughThis PR refines the table grid picker interaction model by implementing edge-exit behavior. When the pointer leaves the grid picker on the right or bottom edge at maximum size (10×10), the selection remains pinned instead of resetting, preventing visual snap-back. The design specification documents this behavior, and the implementation detects pointer exits via bounding rect inspection. ChangesTableGridPicker Edge Exit Behavior
🎯 2 (Simple) | ⏱️ ~8 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Verification: verify:selfResult: ✅ PASS in 140.0s
Verification: verify:integrationResult: ✅ PASS |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Adds @wafflebase/slides as a third surface alongside Sheets and Docs, plus 53-shape library (Phase 1+2), adjustment handles for 9 pilot shapes (P3-A.1), live snap guides, align/distribute toolbar, themed authoring, and layout-change UI. Also ships Sheets cell comments (Phase B), docs peer-avatar caret jump, yorkie-js-sdk 0.7.8 upgrade, and CLI/REST API improvements (docs export imageFetcher, expired session refresh, REST docs split). Minor bump because slides is a new top-level package. Highlights: #184 #185 #186 #187 #188 #189 #190 #191 #192 #197 #198 #201 #202 #203 #204 #205 #206 #207 #209 #210
Summary
Previously, when the user dragged the table-insert grid picker out past the right or bottom edge, the hover state reset to (-1, -1) and the highlighted region collapsed back to the empty state. This made it impossible to land on the maximum 10x10 selection reliably — a slight overshoot would force the user to re-enter and stop precisely on the last cell.
Now the mouseLeave handler checks the exit edge: if the pointer leaves past the right/bottom of the grid, hover is pinned to the MAX_SIZE-1 boundary on that axis instead of being reset. Leaving via the top or left still resets, since that direction has no selection-overshoot risk.
Why
Linked Issues
Fixes #
Verification
CI automatically posts a verification summary comment on this PR with
per-lane results for both
verify:selfandverify:integration.Skip reason (if applicable):
Risk Assessment
Notes for Reviewers
Summary by CodeRabbit
Bug Fixes
Documentation