feat: Add customizable styles for line and bar series in data browser graph#3131
feat: Add customizable styles for line and bar series in data browser graph#3131mtrezza merged 5 commits intoparse-community:alphafrom
Conversation
|
🚀 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. |
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe PR adds support for secondary Y-axis chart type configuration and introduces per-dataset styling options (line and bar styles) across graph configuration components. Styling properties are translated into Chart.js-compatible attributes, and styling information is propagated through the data processing pipeline. Changes
Sequence Diagram(s)sequenceDiagram
actor User
participant GraphDialog as GraphDialog UI
participant GraphPanel as GraphPanel
participant DataUtils as GraphDataUtils
participant ChartJS as Chart.js
User->>GraphDialog: Configure chart type, secondary axis type,<br/>line/bar styles per dataset
GraphDialog->>GraphDialog: Store secondaryYAxisType,<br/>lineStyle, barStyle in state
GraphDialog->>GraphPanel: Pass graphConfig with new properties
GraphPanel->>DataUtils: Process calculated values with<br/>styling metadata
DataUtils->>DataUtils: Create styleMap entries for<br/>lineStyle/barStyle
DataUtils->>GraphPanel: Return datasets with styling props
GraphPanel->>GraphPanel: Translate lineStyle → borderDash,<br/>barStyle → fill/border patterns
GraphPanel->>GraphPanel: Apply secondaryYAxisType to y1 datasets
GraphPanel->>ChartJS: Render with styled datasets
ChartJS->>User: Display chart with secondary axis<br/>and applied line/bar styles
Estimated code review effort🎯 4 (Complex) | ⏱️ ~70 minutes 🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
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 |
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In `@src/components/GraphPanel/GraphPanel.react.js`:
- Around line 159-227: The dataset styling uses global
chartType/secondaryYAxisType and can misapply styles when a dataset has its own
type; compute the dataset's effective type and base decisions on that. In the
mappings that set isLineDataset/isBarDataset (the result.datasets.map blocks
that currently use chartType and (dataset.yAxisID === 'y1' &&
secondaryYAxisType)), determine effectiveType = dataset.type || (dataset.yAxisID
=== 'y1' ? secondaryYAxisType : chartType) and then use effectiveType === 'line'
or effectiveType === 'bar' when applying borderDash/barStyle logic so
dataset.type overrides global defaults.
In `@src/dashboard/Data/Browser/GraphDialog.react.js`:
- Around line 563-600: Compute the effective series type for each series (e.g.,
const effectiveType = calc.useSecondaryYAxis ? this.state.secondaryYAxisType :
this.state.chartType) and use it to gate the style controls instead of the
current mixed conditionals; replace occurrences like (this.state.chartType ===
'line' || (calc.useSecondaryYAxis && this.state.secondaryYAxisType === 'line'))
and the similar bar check with (effectiveType === 'line') and (effectiveType ===
'bar') respectively so only the relevant Dropdown (LINE_STYLES or BAR_STYLES) is
rendered for the series in render (where calc, this.state.chartType,
this.state.secondaryYAxisType, updateCalculatedValue, LINE_STYLES and BAR_STYLES
are referenced).
# [8.3.0-alpha.14](8.3.0-alpha.13...8.3.0-alpha.14) (2026-01-20) ### Features * Add customizable styles for line and bar series in data browser graph ([#3131](#3131)) ([501dd4b](501dd4b))
|
🎉 This change has been released in version 8.3.0-alpha.14 |
# [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))
New Pull Request Checklist
Summary by CodeRabbit
Release Notes
New Features
✏️ Tip: You can customize this high-level summary in your review settings.