Skip to content

Conversation

@mtrezza
Copy link
Member

@mtrezza mtrezza commented Dec 16, 2025

New Pull Request Checklist

Issue Description

Right-click on info panel header selects the object, but it should only be selected on left-click.

Summary by CodeRabbit

  • Bug Fixes
    • Enhanced Data Browser checkbox interaction handling. Checkboxes in the panel header now respond exclusively to left-click inputs, with right-click and middle-click properly ignored. This prevents accidental checkbox toggling from alternative mouse button interactions.

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

@parse-github-assistant
Copy link

🚀 Thanks for opening this pull request! We appreciate your effort in improving the project. Please let us know once your pull request is ready for review.

@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.

@coderabbitai
Copy link

coderabbitai bot commented Dec 16, 2025

📝 Walkthrough

Walkthrough

Adds an early-return guard to the panel header checkbox's onMouseDown handler that filters mouse click events to process only left-button clicks (button 0), effectively ignoring right-click and middle-click events for this interaction.

Changes

Cohort / File(s) Change Summary
Checkbox click input filtering
src/dashboard/Data/Browser/DataBrowser.react.js
Added button-check guard to onMouseDown handler that returns early for non-left-button clicks, narrowing which mouse buttons trigger checkbox drag/toggle behavior

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related PRs

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Description check ❓ Inconclusive The description is incomplete; it lacks the Approach section and TODOs section that are specified in the template. Complete the description by adding the Approach section explaining the implementation strategy and any relevant TODOs before merging.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main issue being fixed: preventing right-click on the info panel header from selecting objects.
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 0f4bfc4 and 70ef661.

📒 Files selected for processing (1)
  • src/dashboard/Data/Browser/DataBrowser.react.js (1 hunks)
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: mtrezza
Repo: parse-community/parse-dashboard PR: 0
File: :0-0
Timestamp: 2025-12-13T19:47:18.023Z
Learning: In Parse Dashboard DataBrowser, the panel header context menu uses the hardcoded 'objectId' field when filtering scripts via `getValidScripts` because the panel header represents the entire object, not a specific field. Field-specific script execution happens when right-clicking on individual table cells in BrowserCell.
📚 Learning: 2025-12-13T19:47:18.023Z
Learnt from: mtrezza
Repo: parse-community/parse-dashboard PR: 0
File: :0-0
Timestamp: 2025-12-13T19:47:18.023Z
Learning: In Parse Dashboard, checking for the `onEditSelectedRow` prop before showing script execution options is intentional and consistent across both DataBrowser and BrowserCell components. This prop indicates the browser is in an editable state, preventing scripts from being shown in read-only views.

Applied to files:

  • src/dashboard/Data/Browser/DataBrowser.react.js
📚 Learning: 2025-12-13T19:47:18.023Z
Learnt from: mtrezza
Repo: parse-community/parse-dashboard PR: 0
File: :0-0
Timestamp: 2025-12-13T19:47:18.023Z
Learning: In Parse Dashboard DataBrowser, the panel header context menu uses the hardcoded 'objectId' field when filtering scripts via `getValidScripts` because the panel header represents the entire object, not a specific field. Field-specific script execution happens when right-clicking on individual table cells in BrowserCell.

Applied to files:

  • src/dashboard/Data/Browser/DataBrowser.react.js
📚 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/DataBrowser.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/DataBrowser.react.js (1)

1786-1789: LGTM! Clean fix for the right-click selection issue.

The guard correctly filters non-left-click buttons (middle-click and right-click) before triggering the checkbox selection logic. This ensures only left-clicks toggle row selection, while allowing the separate onContextMenu handler to manage right-click context menus independently.


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.

@mtrezza mtrezza merged commit ae87114 into parse-community:alpha Dec 16, 2025
11 of 12 checks passed
parseplatformorg pushed a commit that referenced this pull request Dec 16, 2025
# [8.2.0-alpha.10](8.2.0-alpha.9...8.2.0-alpha.10) (2025-12-16)

### Bug Fixes

* Right-click on info panel header selects the object ([#3082](#3082)) ([ae87114](ae87114))
@parseplatformorg
Copy link
Contributor

🎉 This change has been released in version 8.2.0-alpha.10

@parseplatformorg parseplatformorg added the state:released-alpha Released as alpha version label Dec 16, 2025
@mtrezza mtrezza deleted the fix/right-click-header branch December 16, 2025 14:33
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