Skip to content

Commit 249ca01

Browse files
Alternative formatting
1 parent 7942804 commit 249ca01

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed
Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,24 @@
1-
import { AxisValueFormatterContext, ScaleName } from '../models/axis';
1+
import { AxisValueFormatterContext, ContinuousScaleName } from '../models/axis';
2+
3+
const numberFormatter = new Intl.NumberFormat(undefined, { maximumSignificantDigits: 2 });
24

35
/**
46
* Creates a default formatter function for continuous scales (e.g., linear, sqrt, log).
57
* @returns A formatter function for continuous values.
68
*/
79
export function createScalarFormatter(tickNumber: number) {
8-
return function defaultScalarValueFormatter<S extends ScaleName = ScaleName>(
10+
return function defaultScalarValueFormatter<S extends ContinuousScaleName = ContinuousScaleName>(
911
value: any,
1012
context: AxisValueFormatterContext<S>,
1113
): string {
12-
if (
13-
(context.location === 'tick' || context.location === 'zoom-slider-tooltip') &&
14-
'tickFormat' in context.scale
15-
) {
14+
if (context.location === 'tick') {
1615
return context.scale.tickFormat(tickNumber)(value);
1716
}
1817

18+
if (context.location === 'zoom-slider-tooltip' && typeof value === 'number') {
19+
return numberFormatter.format(value);
20+
}
21+
1922
return `${value}`;
2023
};
2124
}

packages/x-charts/src/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
DefaultedXAxis,
1212
DefaultedYAxis,
1313
DefaultedAxis,
14+
AxisValueFormatterContext,
1415
} from '../../../../models/axis';
1516
import { CartesianChartSeriesType, ChartSeriesType } from '../../../../models/seriesType/config';
1617
import { getColorScale, getOrdinalColorScale } from '../../../colorScale';
@@ -209,7 +210,12 @@ export function computeAxisValue<T extends ChartSeriesType>({
209210
scale: finalScale.domain(domain) as any,
210211
tickNumber,
211212
colorScale: axis.colorMap && getColorScale(axis.colorMap),
212-
valueFormatter: axis.valueFormatter ?? createScalarFormatter(tickNumber),
213+
valueFormatter:
214+
axis.valueFormatter ??
215+
(createScalarFormatter(tickNumber) as <TScaleName extends ScaleName>(
216+
value: any,
217+
context: AxisValueFormatterContext<TScaleName>,
218+
) => string),
213219
};
214220
});
215221
return {

0 commit comments

Comments
 (0)