Skip to content

Conversation

@akashsonune
Copy link
Member

BREAKING CHANGE: Removed deprecated SiChartBaseComponent.resetChart method as it should not be directly used by the consumer.

Describe in detail what your merge request does and why. Add relevant
screenshots and reference related issues via Closes #XY or Related to #XY.


BREAKING CHANGE: Removed deprecated `SiChartBaseComponent.resetChart` method as it should not be directly used by the consumer.
@akashsonune akashsonune added this to the 50.0.0 milestone Jan 14, 2026
@gemini-code-assist
Copy link

Summary of Changes

Hello @akashsonune, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refactors the SiChartBaseComponent by removing the deprecated resetChart method. This change streamlines the component's public API, preventing consumers from using an internal method directly, and ensures that theme and renderer changes are handled through the appropriate themeSwitch mechanism.

Highlights

  • Deprecated Method Removal: The resetChart() method in SiChartBaseComponent has been completely removed as it was marked deprecated and not intended for direct consumer use.
  • Internal Logic Update: Internal calls to the removed resetChart() method, specifically when handling theme or renderer changes, have been updated to use the themeSwitch() method instead.
  • API Documentation Update: The API golden file has been updated to reflect the removal of the resetChart() method, ensuring accurate documentation.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request aims to refactor the chart component by removing the deprecated resetChart method. The removal is correctly reflected in the public API documentation. However, the replacement of resetChart() with themeSwitch() in ngOnChanges introduces a critical regression. The themeSwitch method does not handle changes to the renderer input, as this requires re-initializing the chart. My review includes a critical comment with a suggested fix to properly handle renderer changes by re-introducing the logic from the now-removed resetChart method for that specific case, while using the more efficient themeSwitch for theme-only changes.

Comment on lines 388 to 390
if (changes.theme || changes.renderer) {
// need to completely redo the chart for the theme change to take effect
return this.resetChart();
return this.themeSwitch();
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

This change introduces a regression. While themeSwitch() is the correct, more efficient approach for theme changes, it does not handle renderer changes. The chart's renderer can only be set during initialization (echarts.init). The themeSwitch() method does not re-initialize the chart, so changing the renderer input will have no effect.

The previous implementation using resetChart() was correct for renderer changes because it disposed and re-created the chart instance. The logic from resetChart() is still needed for this case.

I suggest splitting the condition to handle renderer changes by re-creating the chart (using the logic from the old resetChart method), and theme-only changes by calling themeSwitch().

    if (changes.renderer) {
      // Re-create the chart to apply the new renderer
      this.applyTheme();

      if (!this.actualOptions) {
        return;
      }

      this.disposeChart();
      this.applyPalette();
      const addOpts = this.additionalOptions();
      if (addOpts?.palette) {
        echarts.util.merge(this.actualOptions.palette, addOpts.palette, true);
      }
      this.themeChanged();
      this.applyStyles();
      this.applyTitles();
      this.ngAfterViewInit(true);
      this.cdRef.markForCheck();
    } else if (changes.theme) {
      this.themeSwitch();
    }

@github-actions
Copy link

Code Coverage

@github-actions
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants