feat: Dynamic currency (#36416)

This commit is contained in:
Richard Fogaca Nienkotter
2026-01-17 02:58:41 -03:00
committed by GitHub
parent 896947c787
commit f4474b2e3e
72 changed files with 3068 additions and 173 deletions

View File

@@ -82,7 +82,11 @@ export default function transformProps(chartProps: ChartProps) {
height,
formData,
queriesData,
datasource: { currencyFormats = {}, columnFormats = {} },
datasource: {
currencyFormats = {},
columnFormats = {},
currencyCodeColumn,
},
} = chartProps;
const {
boldText,
@@ -100,7 +104,8 @@ export default function transformProps(chartProps: ChartProps) {
subtitleFontSize,
columnConfig = {},
} = formData;
const { data: dataA = [] } = queriesData[0];
const { data: dataA = [], detected_currency: detectedCurrency } =
queriesData[0] || {};
const data = dataA;
const metricName = metric ? getMetricLabel(metric) : '';
const metrics = chartProps.datasource?.metrics || [];
@@ -162,6 +167,10 @@ export default function transformProps(chartProps: ChartProps) {
columnFormats,
metricEntry?.d3format || yAxisFormat,
currencyFormat,
undefined,
data,
currencyCodeColumn,
detectedCurrency,
);
const compTitles = {

View File

@@ -42,7 +42,11 @@ export default function transformProps(
formData,
rawFormData,
hooks,
datasource: { currencyFormats = {}, columnFormats = {} },
datasource: {
currencyFormats = {},
columnFormats = {},
currencyCodeColumn,
},
theme,
} = chartProps;
const {
@@ -60,7 +64,11 @@ export default function transformProps(
subheaderFontSize,
} = formData;
const refs: Refs = {};
const { data = [], coltypes = [] } = queriesData[0] || {};
const {
data = [],
coltypes = [],
detected_currency: detectedCurrency,
} = queriesData[0] || {};
const granularity = extractTimegrain(rawFormData as QueryFormData);
const metrics = chartProps.datasource?.metrics || [];
const originalLabel = getOriginalLabel(metric, metrics);
@@ -92,6 +100,10 @@ export default function transformProps(
columnFormats,
metricEntry?.d3format || yAxisFormat,
currencyFormat,
undefined,
data,
currencyCodeColumn,
detectedCurrency,
);
const headerFormatter =

View File

@@ -83,7 +83,11 @@ export default function transformProps(
hooks,
inContextMenu,
theme,
datasource: { currencyFormats = {}, columnFormats = {} },
datasource: {
currencyFormats = {},
columnFormats = {},
currencyCodeColumn,
},
} = chartProps;
const {
colorPicker,
@@ -117,6 +121,7 @@ export default function transformProps(
coltypes = [],
from_dttm: fromDatetime,
to_dttm: toDatetime,
detected_currency: detectedCurrency,
} = queriesData[0];
const aggregatedQueryData = queriesData.length > 1 ? queriesData[1] : null;
@@ -259,6 +264,10 @@ export default function transformProps(
columnFormats,
metricEntry?.d3format || yAxisFormat,
currencyFormat,
undefined,
data,
currencyCodeColumn,
detectedCurrency,
);
const xAxisFormatter = getXAxisFormatter(timeFormat);
const yAxisFormatter =

View File

@@ -31,7 +31,7 @@ import { ColorFormatters } from '@superset-ui/chart-controls';
import { BaseChartProps, Refs } from '../types';
export interface BigNumberDatum {
[key: string]: number | null;
[key: string]: number | string | null;
}
export type BigNumberTotalFormData = QueryFormData & {