Skip to content

Commit 9628ae0

Browse files
fix(Charts - New): fix crash in label truncation if value is null or undefined (#476)
1 parent 0978621 commit 9628ae0

File tree

10 files changed

+13
-10
lines changed

10 files changed

+13
-10
lines changed

packages/charts/src/components/BarChart/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { useLegend, useLegendItemClickHandler } from '../../internal/ChartLegend
1111
import { getCssVariableValue } from '../../themes/Utils';
1212
import { ChartBaseDefaultProps } from '../../util/ChartBaseDefaultProps';
1313
import { useChartData } from '../../util/populateData';
14-
import { getTextWidth } from '../../util/Utils';
14+
import { getTextWidth } from '@ui5/webcomponents-react-charts/lib/Utils';
1515
import { formatAxisCallback, formatDataLabel, formatTooltipLabel, useMergedConfig } from '../../util/utils_deprecated';
1616
import { BarChartPlaceholder } from './Placeholder';
1717

packages/charts/src/components/ColumnChart/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1+
import { getTheme } from '@ui5/webcomponents-base/dist/config/Theme';
12
import { useConsolidatedRef } from '@ui5/webcomponents-react-base/lib/useConsolidatedRef';
3+
import { getTextHeight, getTextWidth } from '@ui5/webcomponents-react-charts/lib/Utils';
24
import { withChartContainer } from '@ui5/webcomponents-react-charts/lib/withChartContainer';
35
import bestContrast from 'get-best-contrast-color';
46
import React, { FC, forwardRef, Ref, useMemo } from 'react';
57
import { Bar } from 'react-chartjs-2';
6-
import { getTheme } from '@ui5/webcomponents-base/dist/config/Theme';
78
import { DEFAULT_OPTIONS } from '../../config';
89
import { ChartBaseProps } from '../../interfaces/ChartBaseProps';
910
import { InternalProps } from '../../interfaces/InternalProps';
1011
import { useLegend, useLegendItemClickHandler } from '../../internal/ChartLegend';
1112
import { getCssVariableValue } from '../../themes/Utils';
1213
import { ChartBaseDefaultProps } from '../../util/ChartBaseDefaultProps';
1314
import { useChartData } from '../../util/populateData';
14-
import { getTextHeight, getTextWidth } from '../../util/Utils';
1515
import { formatAxisCallback, formatDataLabel, formatTooltipLabel, useMergedConfig } from '../../util/utils_deprecated';
1616
import { ColumnChartPlaceholder } from './Placeholder';
1717

packages/charts/src/hooks/useChartMargin.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
import { getTextWidth, truncateLongLabel } from '@ui5/webcomponents-react-charts/lib/Utils';
12
import { useMemo } from 'react';
23
import { getValueByDataKey } from 'recharts/lib/util/ChartUtils';
3-
import { getTextWidth, truncateLongLabel } from '../util/Utils';
44

55
export const useChartMargin = (dataset: unknown[], elements, margin, isBar?, hasSecondaryDimension?, hasZoomingTool?) =>
66
useMemo(() => {

packages/charts/src/internal/ChartDataLabel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { ThemingParameters } from '@ui5/webcomponents-react-base/lib/ThemingParameters';
2+
import { getTextWidth } from '@ui5/webcomponents-react-charts/lib/Utils';
23
import React, { FC } from 'react';
34
import { IChartMeasure } from '../interfaces/IChartMeasure';
4-
import { getTextWidth } from '../util/Utils';
55
import Label from './ChartLabel';
66

77
interface CustomDataLabelProps {

packages/charts/src/internal/SecondaryDimensionXAxisTick.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ThemingParameters } from '@ui5/webcomponents-react-base/lib/ThemingParameters';
2+
import { truncateLongLabel } from '@ui5/webcomponents-react-charts/lib/Utils';
23
import React from 'react';
3-
import { truncateLongLabel } from '../util/Utils';
44

55
let lastRenderedTickValue = '';
66
export const SecondaryDimensionTicksXAxis = (props) => {

packages/charts/src/internal/SecondaryDimensionYAxisTick.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ThemingParameters } from '@ui5/webcomponents-react-base/lib/ThemingParameters';
2+
import { truncateLongLabel } from '@ui5/webcomponents-react-charts/lib/Utils';
23
import React from 'react';
3-
import { truncateLongLabel } from '../util/Utils';
44

55
let lastRenderedTickValue = '';
66
export const SecondaryDimensionTicksYAxis = (props) => {

packages/charts/src/internal/XAxisTicks.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { ThemingParameters } from '@ui5/webcomponents-react-base/lib/ThemingParameters';
2+
import { truncateLongLabel } from '@ui5/webcomponents-react-charts/lib/Utils';
23
import React, { FC, RefObject } from 'react';
34
import { IChartMeasure } from '../interfaces/IChartMeasure';
4-
import { truncateLongLabel } from '../util/Utils';
55
import { SecondaryDimensionTicksXAxis } from './SecondaryDimensionXAxisTick';
66

77
interface XAxisTicksProps {

packages/charts/src/internal/YAxisTicks.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { ThemingParameters } from '@ui5/webcomponents-react-base/lib/ThemingParameters';
2+
import { truncateLongLabel } from '@ui5/webcomponents-react-charts/lib/Utils';
23
import React, { FC } from 'react';
34
import { IChartMeasure } from '../interfaces/IChartMeasure';
4-
import { truncateLongLabel } from '../util/Utils';
55
import { SecondaryDimensionTicksYAxis } from './SecondaryDimensionYAxisTick';
66

77
interface YAxisTicksProps {

packages/charts/src/lib/Utils.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { getTextHeight, getTextWidth, truncateLongLabel } from '../util/Utils';
2+
3+
export { truncateLongLabel, getTextHeight, getTextWidth };

packages/charts/src/util/Utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export const getTextHeight = (text = 'M', font = `normal 12pt "72","72full",Aria
2121
};
2222

2323
export const truncateLongLabel = (value: string, length = 13) => {
24-
if (value.length > length) {
24+
if (value?.length > length) {
2525
return `${value.slice(0, length - 2)}...`;
2626
}
2727
return value;

0 commit comments

Comments
 (0)