fix(plugin-chart-table): Invalid d3Formatter on String column (#23515)

This commit is contained in:
JUST.in DO IT 2023-03-28 15:25:35 -07:00 committed by GitHub
parent 80d1e4ffa3
commit 5d910aa2e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 1 deletions

View File

@ -119,6 +119,7 @@ const processColumns = memoizeOne(function processColumns(
const isMetric = metricsSet.has(key) && isNumeric(key, records);
const isPercentMetric = percentMetricsSet.has(key);
const isTime = dataType === GenericDataType.TEMPORAL;
const isNumber = dataType === GenericDataType.NUMERIC;
const savedFormat = columnFormats?.[key];
const numberFormat = config.d3NumberFormat || savedFormat;
@ -151,7 +152,7 @@ const processColumns = memoizeOne(function processColumns(
} else if (isPercentMetric) {
// percent metrics have a default format
formatter = getNumberFormatter(numberFormat || PERCENT_3_POINT);
} else if (isMetric || numberFormat) {
} else if (isMetric || (isNumber && numberFormat)) {
formatter = getNumberFormatter(numberFormat);
}
return {

View File

@ -97,6 +97,7 @@ describe('plugin-chart-table', () => {
// should successful rerender with new props
const cells = tree.find('td');
expect(tree.find('th').eq(1).text()).toEqual('Sum of Num');
expect(cells.eq(0).text()).toEqual('Michael');
expect(cells.eq(2).text()).toEqual('12.346%');
expect(cells.eq(4).text()).toEqual('2.47k');
});

View File

@ -144,6 +144,20 @@ const advanced: TableChartProps = {
...basicFormData,
metrics: ['sum__num'],
percent_metrics: ['pct_nice'],
column_config: {
name: {
d3NumberFormat: '.3s',
},
sum__num: {
d3NumberFormat: '.3s',
},
pct_nice: {
d3NumberFormat: '.3s',
},
'abc.com': {
d3NumberFormat: '.3s',
},
},
},
queriesData: [
{