Skip to content

Commit c90596f

Browse files
committed
add shared dimensionOrderBy function
1 parent 786bca2 commit c90596f

3 files changed

Lines changed: 17 additions & 13 deletions

File tree

assets/js/dashboard/stats/breakdowns.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
addFilter,
1111
ApiFilter,
1212
NonTimeDimension,
13+
OrderByEntry,
1314
StatsQuery
1415
} from '../stats-query'
1516
import { Filter } from '../dashboard-state'
@@ -227,6 +228,14 @@ export function extractMetricValue(
227228
return { metricIndex, value, comparison }
228229
}
229230

231+
const CANNOT_ORDER_BY_DIMENSIONS = ['event:goal']
232+
233+
export function dimensionOrderBy(dimensions: NonTimeDimension[]) {
234+
return dimensions
235+
.filter((dim) => !CANNOT_ORDER_BY_DIMENSIONS.includes(dim))
236+
.map((dim): OrderByEntry => [dim, 'asc'])
237+
}
238+
230239
export function addDimensionSearchFilter(
231240
statsQuery: StatsQuery,
232241
dimension: string,

assets/js/dashboard/stats/modals/details-breakdown.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import {
2020
import { SortDirection } from '../../../types/query-api'
2121
import { Metric, getBreakdownMetricLabel, isSortable } from '../metrics'
2222
import { BreakdownTable } from './breakdown-table'
23-
import { NonTimeDimension, OrderByEntry } from '../../stats-query'
23+
import { NonTimeDimension } from '../../stats-query'
2424
import { useSiteContext } from '../../site-context'
2525
import { DrilldownLink } from '../../components/drilldown-link'
2626
import {
@@ -31,7 +31,8 @@ import {
3131
useBodyPortalRef,
3232
extractMetricValue,
3333
GetFilterInfo,
34-
useColumnsHiddenForAllNull
34+
useColumnsHiddenForAllNull,
35+
dimensionOrderBy
3536
} from '../breakdowns'
3637
import {
3738
QueryResultRow,
@@ -126,9 +127,7 @@ export function DetailsBreakdown({
126127
dimensions,
127128
order_by: [
128129
...(orderBy.length ? orderBy : storedOrderBy),
129-
...dimensions
130-
.filter((dim) => dim !== 'event:goal')
131-
.map((dim): OrderByEntry => [dim, 'asc'])
130+
...dimensionOrderBy(dimensions)
132131
],
133132
alwaysOnFilters
134133
},

assets/js/dashboard/stats/reports/index-breakdown.tsx

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import FlipMove from 'react-flip-move'
99
import LazyLoader from '../../components/lazy-loader'
1010
import { useDashboardStateContext } from '../../dashboard-state-context'
1111
import { useSiteContext } from '../../site-context'
12-
import { NonTimeDimension, OrderByEntry } from '../../stats-query'
12+
import { NonTimeDimension } from '../../stats-query'
1313
import { Metric, getBreakdownMetricLabel } from '../metrics'
1414
import {
1515
ColumnConfiguration,
@@ -20,7 +20,8 @@ import {
2020
extractMetricValue,
2121
MetricValueWrapper,
2222
GetFilterInfo,
23-
useColumnsHiddenForAllNull
23+
useColumnsHiddenForAllNull,
24+
dimensionOrderBy
2425
} from '../breakdowns'
2526
import { DrilldownLink } from '../../components/drilldown-link'
2627
import { QueryResultRow, QueryResultQuery, QueryApiResponse } from '../../api'
@@ -80,12 +81,7 @@ export function IndexBreakdown({
8081
reportParams: {
8182
metrics,
8283
dimensions,
83-
order_by: [
84-
['visitors', 'desc'],
85-
...dimensions
86-
.filter((dim) => dim !== 'event:goal')
87-
.map((dim): OrderByEntry => [dim, 'asc'])
88-
],
84+
order_by: [['visitors', 'desc'], ...dimensionOrderBy(dimensions)],
8985
alwaysOnFilters,
9086
pagination: { limit: MAX_ITEMS, offset: 0 }
9187
}

0 commit comments

Comments
 (0)