@@ -37,6 +37,8 @@ type BreakdownModalProps = {
3737 /** Function that must return a new query that contains appropriate search filter for searchValue param. */
3838 addSearchFilter ?: ( q : DashboardQuery , searchValue : string ) => DashboardQuery
3939 searchEnabled ?: boolean
40+ /** When true, keep the percentage metric as a permanently visible, sortable column. */
41+ showPercentageColumn ?: boolean
4042}
4143
4244/**
@@ -64,6 +66,7 @@ export default function BreakdownModal<TListItem extends { name: string }>({
6466 renderIcon,
6567 getExternalLinkUrl,
6668 searchEnabled = true ,
69+ showPercentageColumn = false ,
6770 afterFetchData,
6871 afterFetchNextPage,
6972 addSearchFilter,
@@ -147,7 +150,7 @@ export default function BreakdownModal<TListItem extends { name: string }>({
147150 )
148151 } ,
149152 ...breakdownMetrics
150- . filter ( ( m ) => m . key !== 'percentage' )
153+ . filter ( ( m ) => showPercentageColumn || m . key !== 'percentage' )
151154 . map (
152155 ( m ) : ColumnConfiguraton < TListItem > => ( {
153156 label : m . renderLabel ( query ) ,
@@ -156,7 +159,13 @@ export default function BreakdownModal<TListItem extends { name: string }>({
156159 align : 'right' ,
157160 metricWarning : getMetricWarning ( m , meta ) ,
158161 renderValue : ( item , isRowHovered ) =>
159- m . renderValue ( item , meta , { detailedView : true , isRowHovered } ) ,
162+ m . renderValue (
163+ showPercentageColumn && m . key === 'visitors'
164+ ? { ...item , percentage : null }
165+ : item ,
166+ meta ,
167+ { detailedView : true , isRowHovered }
168+ ) ,
160169 onSort : m . sortable ? ( ) => toggleSortByMetric ( m ) : undefined ,
161170 sortDirection : orderByDictionary [ m . key ]
162171 } )
@@ -171,7 +180,8 @@ export default function BreakdownModal<TListItem extends { name: string }>({
171180 toggleSortByMetric ,
172181 renderIcon ,
173182 getExternalLinkUrl ,
174- meta
183+ meta ,
184+ showPercentageColumn
175185 ]
176186 )
177187
0 commit comments