Skip to content

Conversation

@mtrezza
Copy link
Member

@mtrezza mtrezza commented Dec 1, 2025

Summary by CodeRabbit

  • Bug Fixes
    • Navigation prompts for selected rows are now suppressed during export operations, providing a cleaner user experience.

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

@parse-github-assistant
Copy link

parse-github-assistant bot commented Dec 1, 2025

🚀 Thanks for opening this pull request!

@coderabbitai
Copy link

coderabbitai bot commented Dec 1, 2025

📝 Walkthrough

Walkthrough

The PR refactors the condition for displaying the SelectedRowsNavigationPrompt in Browser.react.js by replacing a direct length check with a precomputed selectionCount variable and adding an exporting state guard to suppress the prompt during export operations.

Changes

Cohort / File(s) Change Summary
Navigation Prompt Control Flow
src/dashboard/Data/Browser/Browser.react.js
Refactors SelectedRowsNavigationPrompt render condition to use precomputed selectionCount variable and add !this.state.exporting guard, preventing prompt display during export operations

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

  • Verify selectionCount is properly defined and initialized
  • Confirm this.state.exporting exists and is correctly managed
  • Check that the additional guard does not introduce unintended side effects with existing selection workflows

Possibly related PRs

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning No pull request description was provided. The required template sections including Issue Description, Approach, and TODOs are missing. Add a complete description following the template: include the issue reference, describe the approach taken, and check off relevant TODOs before merging.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the specific fix: suppressing the navigation confirmation dialog during export operations when rows are selected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 759cfac and 3145667.

📒 Files selected for processing (1)
  • src/dashboard/Data/Browser/Browser.react.js (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: mtrezza
Repo: parse-community/parse-dashboard PR: 2957
File: src/dashboard/Data/Browser/BrowserTable.react.js:584-597
Timestamp: 2025-07-31T06:12:17.707Z
Learning: In Parse Dashboard's data browser selection logic (src/dashboard/Data/Browser/BrowserTable.react.js), the `selection['*']` pattern is used to handle global operations that pass `{ '*': true }` to indicate all items are selected, particularly for bulk operations like delete. This is not dead code but serves as compatibility layer for global operations that don't go through normal individual row selection workflows.
Learnt from: mtrezza
Repo: parse-community/parse-dashboard PR: 2828
File: src/dashboard/Data/Browser/Browser.react.js:1605-1607
Timestamp: 2025-05-27T12:09:47.644Z
Learning: In script execution dialogs in Parse Dashboard (specifically the `confirmExecuteScriptRows` method in `src/dashboard/Data/Browser/Browser.react.js`), individual `setState` calls to update `processedScripts` counter should be kept as-is rather than batched, because this provides real-time progress feedback to users in the dialog UI.
📚 Learning: 2025-07-31T06:12:17.707Z
Learnt from: mtrezza
Repo: parse-community/parse-dashboard PR: 2957
File: src/dashboard/Data/Browser/BrowserTable.react.js:584-597
Timestamp: 2025-07-31T06:12:17.707Z
Learning: In Parse Dashboard's data browser selection logic (src/dashboard/Data/Browser/BrowserTable.react.js), the `selection['*']` pattern is used to handle global operations that pass `{ '*': true }` to indicate all items are selected, particularly for bulk operations like delete. This is not dead code but serves as compatibility layer for global operations that don't go through normal individual row selection workflows.

Applied to files:

  • src/dashboard/Data/Browser/Browser.react.js
📚 Learning: 2025-05-27T12:09:47.644Z
Learnt from: mtrezza
Repo: parse-community/parse-dashboard PR: 2828
File: src/dashboard/Data/Browser/Browser.react.js:1605-1607
Timestamp: 2025-05-27T12:09:47.644Z
Learning: In script execution dialogs in Parse Dashboard (specifically the `confirmExecuteScriptRows` method in `src/dashboard/Data/Browser/Browser.react.js`), individual `setState` calls to update `processedScripts` counter should be kept as-is rather than batched, because this provides real-time progress feedback to users in the dialog UI.

Applied to files:

  • src/dashboard/Data/Browser/Browser.react.js
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Node 18
  • GitHub Check: Docker linux/amd64
🔇 Additional comments (1)
src/dashboard/Data/Browser/Browser.react.js (1)

2768-2774: LGTM! The fix correctly suppresses the navigation prompt during export.

The addition of the !this.state.exporting guard prevents the navigation prompt from triggering when users export selected rows. The precomputed selectionCount variable also improves readability.


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.

@parseplatformorg
Copy link
Contributor

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.

@mtrezza mtrezza changed the title fix: Exporting rows triggers confirmation dialog for navigating with selected rows fix: Data browser export triggers confirmation dialog for navigating with selected rows Dec 1, 2025
@mtrezza mtrezza merged commit c6334cd into parse-community:alpha Dec 1, 2025
10 of 11 checks passed
parseplatformorg pushed a commit that referenced this pull request Dec 1, 2025
# [8.1.0-alpha.12](8.1.0-alpha.11...8.1.0-alpha.12) (2025-12-01)

### Bug Fixes

* Data browser export triggers confirmation dialog for navigating with selected rows ([#3037](#3037)) ([c6334cd](c6334cd))
@parseplatformorg
Copy link
Contributor

🎉 This change has been released in version 8.1.0-alpha.12

@parseplatformorg parseplatformorg added the state:released-alpha Released as alpha version label Dec 1, 2025
@mtrezza mtrezza deleted the fix/confirmation-export branch December 1, 2025 14:08
parseplatformorg pushed a commit that referenced this pull request Dec 1, 2025
# [8.1.0](8.0.0...8.1.0) (2025-12-01)

### Bug Fixes

* Data browser export triggers confirmation dialog for navigating with selected rows ([#3037](#3037)) ([c6334cd](c6334cd))
* Info panel data not reloading when clicking refresh button in data browser ([#3027](#3027)) ([8f91d15](8f91d15))
* Info panel may show stale data of previous objects when refreshing the data table or navigating between classes ([#3036](#3036)) ([2565f0e](2565f0e))
* No individual data loading indicators when displaying multiple info panels ([#3026](#3026)) ([5ca8218](5ca8218))
* Selected saved filter is not expanded in sidebar when reloading browser page ([#3029](#3029)) ([2e7850e](2e7850e))
* Sync-scrolling multiple panels jumps to bottom of shortest panel when scrolling up ([#3023](#3023)) ([3f85f89](3f85f89))
* Sync-scrolling multiple panels stops at bottom of shortest panel when scrolling down ([#3024](#3024)) ([bf46938](bf46938))

### Features

* Add `cookieSessionStore` option to support multi-replica deployments ([#3016](#3016)) ([3eb4b05](3eb4b05))
* Add displaying multiple info panels and batch navigation ([#3020](#3020)) ([7ac3186](7ac3186))
* Automatically resize info panel sidebar width when adding or removing panels ([#3025](#3025)) ([1032301](1032301))
* Remember info panel width and count across browser sessions ([#3031](#3031)) ([d188030](d188030))
* Remember selected column when navigating between saved filters of a class with auto-load first row enabled ([#3028](#3028)) ([964584c](964584c))
* Upgrade to parse 7.1.2 ([#3038](#3038)) ([c6c1787](c6c1787))
@parseplatformorg
Copy link
Contributor

🎉 This change has been released in version 8.1.0

@parseplatformorg parseplatformorg added the state:released Released as stable version label Dec 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

state:released Released as stable version state:released-alpha Released as alpha version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants