Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(Line): onClick for activeDot is incorrectly typed #3923

Merged
merged 1 commit into from
Oct 31, 2023

Conversation

andrewangelle
Copy link
Contributor

fix(Line): onClick for activeDot is incorrectly typed

Description

Have activeDot include the type for DotProps which fixes the incorrect types for the event handlers that are added in line 2036 in generateCategoricalChart which give a different payload to the callback mentioned in the issue.

Related Issue

#3922

Motivation and Context

Fixes incorrect types that introduced a breaking change

How Has This Been Tested?

Manually. It's a purely typescript issue. Screenshot below.

Screenshots (if appropriate):

Screenshot 2023-10-31 at 4 22 50 PM

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • I have added a storybook story or extended an existing story to show my changes
  • All new and existing tests passed.

@andrewangelle
Copy link
Contributor Author

@ckifer I pulled down your v2.9.1 patch branch and cherry picked this commit into it locally to make sure there were no surprises there. I was able to run the tests/build/linter all successfully on my local with this commit.

Copy link
Contributor

@nikolasrieble nikolasrieble left a comment

Choose a reason for hiding this comment

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

🚀 Thank you. Can you please double check whether this issue also exists with other ActiveShape usage cases?

@andrewangelle
Copy link
Contributor Author

@nikolasrieble I console logged the events coming in from the onClick for the others and they are receiving a normal event payload that you'd expect from an svg element event handler which is consistent with the current type definition for those.

It'll take me a bit longer to track down if this is how they were typed prior to v2.9.0.

This one for activeDot is different than the rest because the chart wrapper adds a different event handler and renders the active dots separately. The other use cases of activeBar/activeShape are handled via the same rendering method in the chart wrapper and don't have this same overwriting of the event.

@ckifer ckifer merged commit 136f898 into recharts:master Oct 31, 2023
5 checks passed
ckifer pushed a commit that referenced this pull request Nov 1, 2023
<!--- Provide a general summary of your changes in the Title above -->
fix(Line): onClick for activeDot is incorrectly typed

## Description

<!--- Describe your changes in detail -->

Have `activeDot` include the type for `DotProps` which fixes the
incorrect types for the event handlers that are added in [line 2036 in
generateCategoricalChart](https://github.com/recharts/recharts/blob/master/src/chart/generateCategoricalChart.tsx#L2036
) which give a different payload to the callback mentioned in the issue.

## Related Issue

<!--- This project only accepts pull requests related to open issues -->
<!--- If suggesting a new feature or change, please discuss it in an
issue first -->
<!--- If fixing a bug, there should be an issue describing it with steps
to reproduce -->
<!--- Please link to the issue here: -->
#3922 

## Motivation and Context

<!--- Why is this change required? What problem does it solve? -->
Fixes incorrect types that introduced a breaking change 

## How Has This Been Tested?
Manually. It's a purely typescript issue. Screenshot below.

<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran
to -->
<!--- see how your change affects other areas of the code, etc. -->

## Screenshots (if appropriate):
<img width="669" alt="Screenshot 2023-10-31 at 4 22 50 PM"
src="https://github.com/recharts/recharts/assets/24420033/6eff15ec-e7cc-4056-92ed-f44ba3d007a2">

## Types of changes

<!--- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->

- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)

## Checklist:

<!--- Go over all the following points, and put an `x` in all the boxes
that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->

- [x] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have added tests to cover my changes.
- [ ] I have added a storybook story or extended an existing story to
show my changes
- [x] All new and existing tests passed.
@ckifer
Copy link
Member

ckifer commented Nov 1, 2023

Maybe a tiny bit late for this but Area also has an activeDot prop. That one however, does not use the new ActiveShape type

https://github.com/recharts/recharts/blob/master/src/cartesian/Area.tsx#L66

@andrewangelle
Copy link
Contributor Author

For the components touched in the ActiveShape changes, the types for the event handlers all look to be equivalent in the latest version versus 2.8.0. Though admittedly, it's hard to anticipate every which way users could have been using that prop to anticipate other ways to test that haven't already been covered. I'll continue to think about this and see if I can find any inconsistencies that might have been missed.

@ckifer
Copy link
Member

ckifer commented Nov 1, 2023

Yep agreed! Thank you.

It's completely impossible to be honest - it's going to be tough to narrow types in minor version releases. Generally external facing type changes are breaking changes unfortunately

GMer78 pushed a commit to GMer78/recharts-1 that referenced this pull request Nov 24, 2023
<!--- Provide a general summary of your changes in the Title above -->
fix(Line): onClick for activeDot is incorrectly typed

## Description

<!--- Describe your changes in detail -->

Have `activeDot` include the type for `DotProps` which fixes the
incorrect types for the event handlers that are added in [line 2036 in
generateCategoricalChart](https://github.com/recharts/recharts/blob/master/src/chart/generateCategoricalChart.tsx#L2036
) which give a different payload to the callback mentioned in the issue.

## Related Issue

<!--- This project only accepts pull requests related to open issues -->
<!--- If suggesting a new feature or change, please discuss it in an
issue first -->
<!--- If fixing a bug, there should be an issue describing it with steps
to reproduce -->
<!--- Please link to the issue here: -->
recharts#3922 

## Motivation and Context

<!--- Why is this change required? What problem does it solve? -->
Fixes incorrect types that introduced a breaking change 

## How Has This Been Tested?
Manually. It's a purely typescript issue. Screenshot below.

<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran
to -->
<!--- see how your change affects other areas of the code, etc. -->

## Screenshots (if appropriate):
<img width="669" alt="Screenshot 2023-10-31 at 4 22 50 PM"
src="https://github.com/recharts/recharts/assets/24420033/6eff15ec-e7cc-4056-92ed-f44ba3d007a2">

## Types of changes

<!--- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->

- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)

## Checklist:

<!--- Go over all the following points, and put an `x` in all the boxes
that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->

- [x] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have added tests to cover my changes.
- [ ] I have added a storybook story or extended an existing story to
show my changes
- [x] All new and existing tests passed.
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.

None yet

3 participants