mirror of
https://github.com/apache/superset.git
synced 2026-04-15 14:15:15 +00:00
feat: Implement currencies formatter for saved metrics (#24517)
This commit is contained in:
committed by
GitHub
parent
e402c94a9f
commit
83ff4cd86a
@@ -21,6 +21,7 @@ import { MinusSquareOutlined, PlusSquareOutlined } from '@ant-design/icons';
|
||||
import {
|
||||
AdhocMetric,
|
||||
BinaryQueryObjectFilterClause,
|
||||
CurrencyFormatter,
|
||||
DataRecordValue,
|
||||
FeatureFlag,
|
||||
getColumnLabel,
|
||||
@@ -144,6 +145,7 @@ export default function PivotTableChart(props: PivotTableProps) {
|
||||
selectedFilters,
|
||||
verboseMap,
|
||||
columnFormats,
|
||||
currencyFormats,
|
||||
metricsLayout,
|
||||
metricColorFormatters,
|
||||
dateFormatters,
|
||||
@@ -156,24 +158,39 @@ export default function PivotTableChart(props: PivotTableProps) {
|
||||
() => getNumberFormatter(valueFormat),
|
||||
[valueFormat],
|
||||
);
|
||||
const columnFormatsArray = useMemo(
|
||||
() => Object.entries(columnFormats),
|
||||
[columnFormats],
|
||||
const customFormatsArray = useMemo(
|
||||
() =>
|
||||
Array.from(
|
||||
new Set([
|
||||
...Object.keys(columnFormats || {}),
|
||||
...Object.keys(currencyFormats || {}),
|
||||
]),
|
||||
).map(metricName => [
|
||||
metricName,
|
||||
columnFormats[metricName] || valueFormat,
|
||||
currencyFormats[metricName],
|
||||
]),
|
||||
[columnFormats, currencyFormats, valueFormat],
|
||||
);
|
||||
const hasCustomMetricFormatters = columnFormatsArray.length > 0;
|
||||
const hasCustomMetricFormatters = customFormatsArray.length > 0;
|
||||
const metricFormatters = useMemo(
|
||||
() =>
|
||||
hasCustomMetricFormatters
|
||||
? {
|
||||
[METRIC_KEY]: Object.fromEntries(
|
||||
columnFormatsArray.map(([metric, format]) => [
|
||||
customFormatsArray.map(([metric, d3Format, currency]) => [
|
||||
metric,
|
||||
getNumberFormatter(format),
|
||||
currency
|
||||
? new CurrencyFormatter({
|
||||
currency,
|
||||
d3Format,
|
||||
})
|
||||
: getNumberFormatter(d3Format),
|
||||
]),
|
||||
),
|
||||
}
|
||||
: undefined,
|
||||
[columnFormatsArray, hasCustomMetricFormatters],
|
||||
[customFormatsArray, hasCustomMetricFormatters],
|
||||
);
|
||||
|
||||
const metricNames = useMemo(
|
||||
|
||||
Reference in New Issue
Block a user