-
Notifications
You must be signed in to change notification settings - Fork 120
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(legend): legend sizes with ordinal data #867
Conversation
Codecov Report
@@ Coverage Diff @@
## master #867 +/- ##
==========================================
+ Coverage 69.56% 69.76% +0.19%
==========================================
Files 321 336 +15
Lines 10630 10269 -361
Branches 2195 1964 -231
==========================================
- Hits 7395 7164 -231
+ Misses 3226 3038 -188
- Partials 9 67 +58
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
1 similar comment
Codecov Report
@@ Coverage Diff @@
## master #867 +/- ##
==========================================
+ Coverage 69.56% 69.76% +0.19%
==========================================
Files 321 336 +15
Lines 10630 10269 -361
Branches 2195 1964 -231
==========================================
- Hits 7395 7164 -231
+ Misses 3226 3038 -188
- Partials 9 67 +58
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
if (xDomain.scaleType === ScaleType.Ordinal) { | ||
lastValues.set(seriesKey, { y0: initialY0, y1: initialY1 }); | ||
} |
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.
I'm not sure this is needed. Wouldn't it just set the correct values without this?
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.
Agreed - removed in a054fdc
lastValue: LastValues, | ||
formatter: (value: any, options?: TickFormatterOptions | undefined) => string, | ||
) { | ||
return showLegendExtra || xScaleType === 'ordinal' |
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.
You can't check the type here because the legendSizeSelector
needs to know these values, to fix the issue. You could check the xScaleType
before rendering in the LegendItem
component.
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.
Another way to fix this would be to add a sizingLabel
prop to this and use that value in the legendSizeSelector
instead of formatted
.
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.
Commit a054fdc and discussed in zoom 🙇♀️
defaultExtra: { | ||
raw: lastValue && lastValue.y0 !== null ? lastValue.y0 : null, | ||
formatted: lastValue && lastValue.y0 !== null ? formatter(lastValue.y0) : null, | ||
}, |
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.
Careful with extracting this, the value here is y0
not y1
like the function returns
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.
Thanks! Commit a054fdc for changes
dcb904a
to
a054fdc
Compare
Codecov Report
@@ Coverage Diff @@
## master #867 +/- ##
==========================================
+ Coverage 69.55% 70.09% +0.53%
==========================================
Files 321 336 +15
Lines 10632 10920 +288
Branches 2196 2238 +42
==========================================
+ Hits 7395 7654 +259
- Misses 3228 3251 +23
- Partials 9 15 +6
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
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.
Awesome! LGTM, I made one comment on the tests to fix but other than that I approve.
it('should return correct legendSizingLabel with linear scale and showExtraLegend set to true', () => { | ||
const formatter = (d: string | number) => `${Number(d).toFixed(2)} dogs`; | ||
const lastValues = { y0: null, y1: 14 }; | ||
const showExtraLegend = true; | ||
const xScaleIsLinear = ScaleType.Linear; | ||
|
||
expect(getLegendExtra(showExtraLegend, xScaleIsLinear, formatter, 'y1', lastValues)).toMatchObject({ | ||
legendSizingLabel: '14.00 dogs', | ||
}); | ||
}); | ||
it('should return formatted to null with ordinal scale and showExtraLegend set to true', () => { | ||
const formatter = (d: string | number) => `${Number(d).toFixed(2)} dogs`; | ||
const lastValues = { y0: null, y1: 14 }; | ||
|
||
expect(getLegendExtra(true, ScaleType.Ordinal, formatter, 'y1', lastValues)).toMatchObject({ | ||
formatted: null, | ||
}); | ||
}); | ||
it('should return legendSizingLabel null with showLegendExtra set to false', () => { | ||
const formatter = (d: string | number) => `${Number(d).toFixed(2)} dogs`; | ||
const lastValues = { y0: null, y1: 14 }; | ||
const showLegendExtra = false; | ||
|
||
expect(getLegendExtra(showLegendExtra, ScaleType.Ordinal, formatter, 'y1', lastValues)).toMatchObject({ | ||
legendSizingLabel: null, | ||
}); | ||
}); |
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.
I think you should assert all three parts of the extraValue
for all of these
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.
Thank you! Addressed in commit 6b57387
# [24.1.0](v24.0.0...v24.1.0) (2020-11-24) ### Bug Fixes * **area_charts:** correctly represent baseline with negative data points ([#896](#896)) ([d1243f1](d1243f1)) * **legend:** legend sizes with ordinal data ([#867](#867)) ([7559e0d](7559e0d)), closes [#811](#811) * render orphan data points on lines and areas ([#900](#900)) ([0be282b](0be282b)), closes [#783](#783) * specs swaps correctly reflected in state ([#901](#901)) ([7fba882](7fba882)) ### Features * **legend:** allow legend text to be copyable ([#877](#877)) ([9cd3459](9cd3459)), closes [#710](#710) * allow clearing series colors from memory ([#899](#899)) ([ab1af38](ab1af38)) * merge series domain with the domain of another group ([#912](#912)) ([325b013](325b013)) * small multiples for XY charts (alpha) ([#793](#793)) ([d288208](d288208)), closes [#500](#500) [#500](#500)
🎉 This PR is included in version 24.1.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
# [24.1.0](elastic/elastic-charts@v24.0.0...v24.1.0) (2020-11-24) ### Bug Fixes * **area_charts:** correctly represent baseline with negative data points ([opensearch-project#896](elastic/elastic-charts#896)) ([b622fda](elastic/elastic-charts@b622fda)) * **legend:** legend sizes with ordinal data ([opensearch-project#867](elastic/elastic-charts#867)) ([74bcbad](elastic/elastic-charts@74bcbad)), closes [opensearch-project#811](elastic/elastic-charts#811) * render orphan data points on lines and areas ([opensearch-project#900](elastic/elastic-charts#900)) ([3e2c739](elastic/elastic-charts@3e2c739)), closes [opensearch-project#783](elastic/elastic-charts#783) * specs swaps correctly reflected in state ([opensearch-project#901](elastic/elastic-charts#901)) ([a94347f](elastic/elastic-charts@a94347f)) ### Features * **legend:** allow legend text to be copyable ([opensearch-project#877](elastic/elastic-charts#877)) ([21a96d3](elastic/elastic-charts@21a96d3)), closes [opensearch-project#710](elastic/elastic-charts#710) * allow clearing series colors from memory ([opensearch-project#899](elastic/elastic-charts#899)) ([e97f4ab](elastic/elastic-charts@e97f4ab)) * merge series domain with the domain of another group ([opensearch-project#912](elastic/elastic-charts#912)) ([716ad5a](elastic/elastic-charts@716ad5a)) * small multiples for XY charts (alpha) ([opensearch-project#793](elastic/elastic-charts#793)) ([3b88e1c](elastic/elastic-charts@3b88e1c)), closes [opensearch-project#500](elastic/elastic-charts#500) [opensearch-project#500](elastic/elastic-charts#500)
Summary
Fixes #811
Before this PR, if the legend has
LegendExtra
and nospacingBuffer
specified in thetheme
, the labels in the legend will be truncated when hovering over the series.After the fix, the legend is sized to correctly show the labels and values for the legend:
Checklist
Delete any items that are not applicable to this PR.