Skip to content

feat: Add auto-scrolling for info panels#3149

Merged
mtrezza merged 7 commits intoparse-community:alphafrom
mtrezza:feat/auto-scroll
Jan 25, 2026
Merged

feat: Add auto-scrolling for info panels#3149
mtrezza merged 7 commits intoparse-community:alphafrom
mtrezza:feat/auto-scroll

Conversation

@mtrezza
Copy link
Member

@mtrezza mtrezza commented Jan 25, 2026

Pull Request

Summary by CodeRabbit

  • New Features

    • Auto-scroll for the data browser aggregation panel.
    • Toggle for Auto-scroll added to Settings > Info Panel.
    • Auto-scroll control button with animated indicator added to the toolbar.
  • Documentation

    • Added Auto-Scroll usage and controls to the Info Panel docs and table of contents.

✏️ Tip: You can customize this high-level summary in your review settings.

@parse-github-assistant
Copy link

🚀 Thanks for opening this pull request!

@parseplatformorg
Copy link
Contributor

parseplatformorg commented Jan 25, 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 Jan 25, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

Adds an Auto-scroll feature for the Data Browser aggregation panel: UI controls (toolbar button + Settings menu), recording of scroll gestures via Option/Alt + wheel, an animation loop to replay the gesture, pause/resume behavior, persistence to localStorage, and lifecycle cleanup.

Changes

Cohort / File(s) Summary
Toolbar UI
src/components/Toolbar/Toolbar.react.js, src/components/Toolbar/Toolbar.scss
Adds an Auto-scroll button rendered when isAutoScrolling is true and wired to stopAutoScroll. Adds .btnAutoScroll styling with pulsing animation and hover state.
BrowserToolbar integration
src/dashboard/Data/Browser/BrowserToolbar.react.js
Adds props: autoScrollEnabled, toggleAutoScroll, isAutoScrolling, stopAutoScroll. Injects them into Toolbar. Adds "Auto-scroll" MenuItem under Settings > Info Panel that toggles autoScrollEnabled and shows check when enabled.
DataBrowser core logic
src/dashboard/Data/Browser/DataBrowser.react.js
Implements auto-scroll feature: new state fields (autoScrollEnabled, isAutoScrolling, isRecordingAutoScroll, autoScrollAmount, autoScrollDelay, autoScrollPaused, recordingScrollStart/End, recordedScrollDelta), added handlers (toggleAutoScroll, handleAutoScrollKeyDown, handleAutoScrollKeyUp, handleAutoScrollWheel, startAutoScroll, stopAutoScroll, performAutoScrollStep, pauseAutoScrollWithResume), global key listeners, onWheel wiring on aggregation panel, animation/timer management, localStorage flag AGGREGATION_PANEL_AUTO_SCROLL, and robust cleanup on unmount/visibility changes.
Docs
README.md
Adds Auto-Scroll documentation and table of contents entry describing controls, usage, and behavior.

Sequence Diagram

sequenceDiagram
    participant User as User
    participant BrowserToolbar as BrowserToolbar
    participant DataBrowser as DataBrowser
    participant Panel as AggregationPanel
    participant Toolbar as Toolbar

    User->>BrowserToolbar: Click Settings > Auto-scroll
    BrowserToolbar->>DataBrowser: toggleAutoScroll()
    DataBrowser->>DataBrowser: setState(autoScrollEnabled)
    Note over DataBrowser: Listens for Option/Alt + wheel to record

    User->>DataBrowser: Hold Option/Alt + Scroll wheel
    DataBrowser->>DataBrowser: handleAutoScrollKeyDown()
    DataBrowser->>DataBrowser: handleAutoScrollWheel() (record delta)
    User->>DataBrowser: Release Option/Alt
    DataBrowser->>DataBrowser: handleAutoScrollKeyUp() → startAutoScroll()

    loop Auto-scroll playback
        DataBrowser->>DataBrowser: performAutoScrollStep() (easing)
        DataBrowser->>Panel: update scrollTop
        Note over DataBrowser,Panel: optional multi-panel sync
    end

    User->>Toolbar: Click Auto-scroll Stop button
    Toolbar->>DataBrowser: stopAutoScroll()
    DataBrowser->>DataBrowser: cancel timers/animation, setState(isAutoScrolling=false)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is largely incomplete, missing required sections including Issue link, Approach explanation, and Tasks checklist that are specified in the template. Add the missing required sections: include the 'Closes:' issue link, provide an 'Approach' section describing the implementation details, and complete the 'Tasks' checklist indicating test and documentation status.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (1 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main feature being added: auto-scrolling functionality for info panels, which aligns with all code changes across multiple files.

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

✨ Finishing touches
🧪 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 Jan 25, 2026
@mtrezza mtrezza merged commit 3cd8197 into parse-community:alpha Jan 25, 2026
11 of 12 checks passed
parseplatformorg pushed a commit that referenced this pull request Jan 25, 2026
# [8.3.0-alpha.30](8.3.0-alpha.29...8.3.0-alpha.30) (2026-01-25)

### Features

* Add auto-scrolling for info panels ([#3149](#3149)) ([3cd8197](3cd8197))
@parseplatformorg
Copy link
Contributor

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

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