-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
feat(pie-chart): apply className
to the label
and labelLine
#4381
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we can do the suggestion later, this looks good how it is
@@ -402,7 +402,8 @@ export class Pie extends PureComponent<Props, State> { | |||
return option(props); | |||
} | |||
|
|||
return <Curve {...props} type="linear" className="recharts-pie-label-line" />; | |||
const className = clsx('recharts-pie-label-line', typeof option !== 'boolean' ? option.className : ''); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: we kind of already have a typeguard for this right?
76bbdcb#diff-0030e00d80866b12434b3def516dcf03f12a37360fcaaa5fc6a7c32e0d04d17cR187
We can move the typeguard out of polar utils to somewhere that is more generic, and then make the function more generic so it works for every case.
And actually to make it a true "type guard" we could instead do
export const hasCustomClassName = <T extends SVGElement>(
option?: SVGProps<T> | ReactElement<SVGElement> | ((props: any) => ReactElement<SVGElement>) | boolean,
): option is { className: string } =>
!isValidElement(option) && !isFunction(option) && typeof option !== 'boolean' && 'className' in option;
Then `const className = clsx('recharts-pie-label-line', hasCustomClassName(option) ? option.className : '');
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [recharts](https://togithub.com/recharts/recharts) | [`2.12.3` -> `2.12.4`](https://renovatebot.com/diffs/npm/recharts/2.12.3/2.12.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/recharts/2.12.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/recharts/2.12.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/recharts/2.12.3/2.12.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/recharts/2.12.3/2.12.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>recharts/recharts (recharts)</summary> ### [`v2.12.4`](https://togithub.com/recharts/recharts/releases/tag/v2.12.4) [Compare Source](https://togithub.com/recharts/recharts/compare/v2.12.3...v2.12.4) #### What's Changed Small fixes while working on v3 continued... ##### Fix - `Accessibility`: remove role attribute from recharts-wrapper which caused an accessibility violation with > 1 chart on the same page by [@​julianna-langston](https://togithub.com/julianna-langston) in [recharts/recharts#4386, fixes [#​4384](https://togithub.com/recharts/recharts/issues/4384) - `X/YAxis`: fix incorrect padding calculation when there is 1 datapoint or less by [@​graup](https://togithub.com/graup) in [recharts/recharts#4314 closes [#​4313](https://togithub.com/recharts/recharts/issues/4313) `className` fixes - helps slowly address [recharts/recharts#2169: - `Tooltip`: allow custom `className` on `cursor` by [@​108yen](https://togithub.com/108yen) in [recharts/recharts#4306 - `RadarChart/RadialBarChart`: allow custom `className` on `PolarRadiusAxis`, `PolarAngleAxis`, and `Radar` dot by [@​108yen](https://togithub.com/108yen) in [recharts/recharts#4335 - `Pie`: allow custom `className` on `label` and `labelLine` of `Pie` by [@​108yen](https://togithub.com/108yen) in [recharts/recharts#4381 **Full Changelog**: recharts/recharts@v2.12.3...v2.12.4 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/SAP/ui5-webcomponents-react). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Lukas Harbarth <lukas.harbarth@sap.com>
Description
apply
className
to thelabel
andlabelLine
inPieChart
component.Related Issue
#4378
Motivation and Context
Required if you want to assign
className
to thePieChart
component.How Has This Been Tested?
Added unit test.
Screenshots (if appropriate):
Types of changes
Checklist: