Skip to content

fix: Info panel auto-scrolling not pausing during UI interaction like text selection or context menu display#3165

Merged
mtrezza merged 4 commits intoparse-community:alphafrom
mtrezza:fix/auto-scroll-behavior
Feb 3, 2026
Merged

fix: Info panel auto-scrolling not pausing during UI interaction like text selection or context menu display#3165
mtrezza merged 4 commits intoparse-community:alphafrom
mtrezza:fix/auto-scroll-behavior

Conversation

@mtrezza
Copy link
Member

@mtrezza mtrezza commented Feb 3, 2026

Pull Request

Summary by CodeRabbit

  • New Features

    • Auto-scroll can be recorded using the Command/Meta key; wheel scrolls while held start a recording and accumulate deltas.
    • Left-mouse button interactions now pause/resume auto-scroll more reliably.
  • Bug Fixes

    • Improved native context-menu detection and lifecycle handling.
    • More robust auto-scroll state management with smoother resume after interruptions and better handling of simultaneous inputs.

@parse-github-assistant
Copy link

parse-github-assistant bot commented Feb 3, 2026

🚀 Thanks for opening this pull request!

@parseplatformorg
Copy link
Contributor

parseplatformorg commented Feb 3, 2026

Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@coderabbitai
Copy link

coderabbitai bot commented Feb 3, 2026

📝 Walkthrough

Walkthrough

Tracks Command/Meta key, left mouse button, and native context-menu state in DataBrowser to pause/resume and record user-driven wheel input for auto-scroll control; adds helpers to detect native context-menu lifecycle and updates auto-scroll start/stop/stepping and recording logic accordingly. (46 words)

Changes

Cohort / File(s) Summary
DataBrowser core
src/dashboard/Data/Browser/DataBrowser.react.js
Adds commandKeyPressed state; instance fields mouseButtonPressed, nativeContextMenuTracker; new handlers handleMouseButtonDown, handleMouseButtonUp; binds updated; initializes/restores new fields.
Auto-scroll control & recording
src/dashboard/Data/Browser/DataBrowser.react.js
Reworks auto-scroll key and wheel handling: enter/exit recording on first wheel with Command held, accumulate recordedScrollDelta, commit recording on key release, reset commandKeyPressed when auto-scroll stops, and add temporary blocked/unblock wait before resuming stepping.
Native context-menu detection
src/dashboard/Data/Browser/DataBrowser.react.js
Replaces inline event wiring with setupNativeContextMenuDetection() that attaches pointer/keyboard/visibility/blur handlers and returns a disposer; integrates lifecycle into init/cleanup.
Auto-scroll blocking logic
src/dashboard/Data/Browser/DataBrowser.react.js
Extends isAutoScrollBlocked to consider mouseButtonPressed and commandKeyPressed; adds left-button listeners to pause/resume auto-scroll and coordinates blocking state with recording and stepping logic.

Sequence Diagram

sequenceDiagram
    actor User
    participant DataBrowser
    participant AutoScroll
    participant NativeOS as Native OS / ContextMenu

    User->>DataBrowser: Press Command (Meta)
    DataBrowser->>DataBrowser: commandKeyPressed = true

    User->>DataBrowser: Wheel scroll
    DataBrowser->>AutoScroll: stop ongoing auto-scroll
    DataBrowser->>DataBrowser: enter recording (isRecordingAutoScroll = true)
    DataBrowser->>DataBrowser: accumulate recordedScrollDelta

    User->>NativeOS: Open native context menu (optional)
    NativeOS->>DataBrowser: nativeContextMenuTracker triggers pause
    DataBrowser->>DataBrowser: mouseButtonPressed / native menu block set

    User->>DataBrowser: Release Command
    DataBrowser->>DataBrowser: handleAutoScrollKeyUp -> commit recording if delta
    DataBrowser->>AutoScroll: resume/step after unblock (with optional delay)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is largely incomplete, missing the Issue link, detailed Approach description, and Tasks checklist from the required template. Complete the PR description by filling in the Issue link, providing a detailed Approach section explaining the changes, and checking/unchecking the Tasks checklist as applicable.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The PR title clearly summarizes the main change: adding pause functionality to auto-scrolling during UI interactions like text selection and context menu interaction.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot]
coderabbitai bot previously approved these changes Feb 3, 2026
@mtrezza mtrezza changed the title fix: Pause info panel auto-scrolling during text selection or context menu interaction fix: Auto-scrolling does not pause during UI interactions like text selection or context menu interaction Feb 3, 2026
@mtrezza mtrezza changed the title fix: Auto-scrolling does not pause during UI interactions like text selection or context menu interaction fix: Info panel auto-scrolling does not pause during UI interactions like text selection or context menu interaction Feb 3, 2026
@mtrezza mtrezza changed the title fix: Info panel auto-scrolling does not pause during UI interactions like text selection or context menu interaction fix: Info panel auto-scrolling does not pause during UI interactions like text selection or context menu display Feb 3, 2026
@mtrezza mtrezza changed the title fix: Info panel auto-scrolling does not pause during UI interactions like text selection or context menu display fix: Info panel auto-scrolling not pausing during UI interaction like text selection or context menu display Feb 3, 2026
@mtrezza mtrezza merged commit bfe4e8a into parse-community:alpha Feb 3, 2026
12 checks passed
parseplatformorg pushed a commit that referenced this pull request Feb 3, 2026
# [8.3.0-alpha.39](8.3.0-alpha.38...8.3.0-alpha.39) (2026-02-03)

### Bug Fixes

* Info panel auto-scrolling not pausing during UI interaction like text selection or context menu display ([#3165](#3165)) ([bfe4e8a](bfe4e8a))
@parseplatformorg
Copy link
Contributor

🎉 This change has been released in version 8.3.0-alpha.39

@parseplatformorg parseplatformorg added the state:released-alpha Released as alpha version label Feb 3, 2026
@mtrezza mtrezza deleted the fix/auto-scroll-behavior branch February 3, 2026 18:36
parseplatformorg pushed a commit that referenced this pull request Feb 5, 2026
# [8.3.0](8.2.0...8.3.0) (2026-02-05)

### Bug Fixes

* Canvas graph element does not apply data filter option ([#3128](#3128)) ([00ff1aa](00ff1aa))
* Canvas is not expandable or scrollable beyond current view size ([#3140](#3140)) ([cb73122](cb73122))
* Cloud Config parameter modal cannot scroll when content scales beyond visible area ([#3124](#3124)) ([bb6de31](bb6de31))
* Context menu of header cell in info panel does not group related records by class name ([#3122](#3122)) ([230c1e2](230c1e2))
* Context menu sub-menu in data browser vertically misaligned when scrolling in parent menu ([#3120](#3120)) ([2acaa27](2acaa27))
* Dashboard crashes when adding Parse Pointer JSON to array field in data browser ([#3125](#3125)) ([70bf081](70bf081))
* Data browser graph requires value field even when calculated value is defined ([#3127](#3127)) ([53e4f2b](53e4f2b))
* Graph in canvas ignores date filter constraints ([#3137](#3137)) ([6d8b8e6](6d8b8e6))
* Group-by not using custom aggregation type for single-series graph ([#3159](#3159)) ([b8e8891](b8e8891))
* Incorrect percentage and average calculation for calculated values in graphs ([#3152](#3152)) ([14b4d48](14b4d48))
* Info panel auto-scrolling not pausing during UI interaction like text selection or context menu display ([#3165](#3165)) ([bfe4e8a](bfe4e8a))
* Name of calculated value in data browser graph allows leading and trailing spaces ([#3132](#3132)) ([9493b18](9493b18))
* Optimize data browser cell context menu grouping and readability ([#3141](#3141)) ([5c711e1](5c711e1))
* Security upgrade react-router and react-router-dom ([#3107](#3107)) ([b76b9d1](b76b9d1))
* Setting a keyboard shortcut to its default value creates an unnecessary dashboard config storage entry ([#3173](#3173)) ([4949053](4949053))

### Features

* Add auto-scrolling for info panels ([#3149](#3149)) ([3cd8197](3cd8197))
* Add canvas tree to sidebar instead of loading dialog and favorite functionality ([#3146](#3146)) ([e58dc82](e58dc82))
* Add cloning of element in canvas ([#3144](#3144)) ([dec06ad](dec06ad))
* Add context menu in data browser to add cell content or selected text to Cloud Config parameter ([#3123](#3123)) ([9bc5197](9bc5197))
* Add context menu in data browser to get related records from String and Number fields ([#3118](#3118)) ([824bebd](824bebd))
* Add context menu item to get related records for selected text in data browser cell ([#3142](#3142)) ([33d3595](33d3595))
* Add custom dashboard canvas with graphs and data tables ([#3126](#3126)) ([d45c27b](d45c27b))
* Add customizable styles for line and bar series in data browser graph ([#3131](#3131)) ([501dd4b](501dd4b))
* Add customizable Y-axis titles for data browser graphs ([#3130](#3130)) ([2946e64](2946e64))
* Add dialog to execute Cloud Job with parameters ([#3158](#3158)) ([da419e0](da419e0))
* Add expanded view for canvas elements graph, table, view ([#3156](#3156)) ([0ffd767](0ffd767))
* Add field `objectId` to get related records context menu in data browser ([#3161](#3161)) ([2847ccf](2847ccf))
* Add formula-based calculated value to data browser graph ([#3129](#3129)) ([7c5d1b3](7c5d1b3))
* Add keyboard shortcut for executing script on selected rows in data browser ([#3171](#3171)) ([75389ad](75389ad))
* Add more customization options for graphs in canvas ([#3134](#3134)) ([ddbd666](ddbd666))
* Add non-alphanumeric character detection in Cloud Config parameters ([#3143](#3143)) ([1594ec8](1594ec8))
* Add quick-remove button to array parameter in Cloud Config ([#3121](#3121)) ([b632074](b632074))
* Add support for server side storage of Cloud Config parameter history ([#3169](#3169)) ([964e540](964e540))
* Allow adding View elements to canvas ([#3133](#3133)) ([2f2ae9a](2f2ae9a))
* Allow to favorite canvas for quick-access via sidebar menu ([#3135](#3135)) ([1e3a3c7](1e3a3c7))
* Allow to pause auto-scroll of info panel by holding the Option key ([#3160](#3160)) ([db38f14](db38f14))
* Allow to use ESC key to cancel, Cmd + Enter key to submit, Tab key to navigate a modal dialog ([#3172](#3172)) ([debdc09](debdc09))
* Detect and warn about unprintable characters in Cloud Config parameter values ([#3119](#3119)) ([26c909c](26c909c))
* Improve usability and layout of canvas and elements ([#3148](#3148)) ([cd654dc](cd654dc))
* Optimize appearance of graph tick labels on x-axis for date values ([#3147](#3147)) ([a9edcaf](a9edcaf))
* Optimize canvas menu organization ([#3145](#3145)) ([1558826](1558826))
* Replace graph fields with graph series for more customization ([#3157](#3157)) ([51feba4](51feba4))
* Various improvements for auto-scrolling info panel ([#3151](#3151)) ([423d83a](423d83a))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

state:released-alpha Released as alpha version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants