@@ -6,6 +6,7 @@ import type { Report } from 'api/reports/report';
6
6
import messages from 'locales/messages' ;
7
7
import React , { useEffect , useState } from 'react' ;
8
8
import { useIntl } from 'react-intl' ;
9
+ import { ComputedReportItemValueType } from 'routes/components/charts/common' ;
9
10
import { DataTable } from 'routes/components/dataTable' ;
10
11
import { styles } from 'routes/components/dataTable/dataTable.styles' ;
11
12
import { NoVirtualizationState } from 'routes/components/page/noVirtualization/noVirtualizationState' ;
@@ -16,6 +17,7 @@ import { getUnsortedComputedReportItems } from 'routes/utils/computedReport/getC
16
17
import { formatCurrency , formatUnits , unitsLookupKey } from 'utils/format' ;
17
18
18
19
interface VirtualizationTableOwnProps {
20
+ costDistribution ?: string ;
19
21
exclude ?: any ;
20
22
filterBy ?: any ;
21
23
hideCluster ?: boolean ;
@@ -43,6 +45,7 @@ export const VirtualizationTableColumnIds = {
43
45
} ;
44
46
45
47
const VirtualizationTable : React . FC < VirtualizationTableProps > = ( {
48
+ costDistribution,
46
49
exclude,
47
50
filterBy,
48
51
hideCluster,
@@ -119,7 +122,7 @@ const VirtualizationTable: React.FC<VirtualizationTableProps> = ({
119
122
...( computedItems . length && { isSortable : true } ) ,
120
123
} ,
121
124
{
122
- orderBy : 'cost' ,
125
+ orderBy : costDistribution === ComputedReportItemValueType . distributed ? 'distributed_cost' : 'cost' ,
123
126
name : intl . formatMessage ( messages . cost ) ,
124
127
style : styles . costColumn ,
125
128
...( computedItems . length && { isSortable : true } ) ,
@@ -212,8 +215,10 @@ const VirtualizationTable: React.FC<VirtualizationTableProps> = ({
212
215
} ;
213
216
214
217
const getTotalCost = ( item : ComputedReportItem ) => {
215
- const value = item . cost ?. total ?. value || 0 ;
216
- const units = item . cost ?. total ?. units || 'USD' ;
218
+ const reportItemValue = costDistribution ? costDistribution : ComputedReportItemValueType . total ;
219
+ const hasTotal = item ?. cost ?. [ reportItemValue ] ;
220
+ const value = hasTotal ? item ?. cost ?. [ reportItemValue ] ?. value : 0 ;
221
+ const units = hasTotal ? item ?. cost ?. [ reportItemValue ] ?. units : 'USD' ;
217
222
return formatCurrency ( value , units ) ;
218
223
} ;
219
224
@@ -225,7 +230,7 @@ const VirtualizationTable: React.FC<VirtualizationTableProps> = ({
225
230
226
231
useEffect ( ( ) => {
227
232
initDatum ( ) ;
228
- } , [ hiddenColumns , report , selectedItems ] ) ;
233
+ } , [ costDistribution , hiddenColumns , report , selectedItems ] ) ;
229
234
230
235
return (
231
236
< DataTable
0 commit comments