diff --git a/packages/grafana-ui/src/components/DataTable/DataTable.tsx b/packages/grafana-ui/src/components/DataTable/DataTable.tsx index a14522fd10f..322b3847c7b 100644 --- a/packages/grafana-ui/src/components/DataTable/DataTable.tsx +++ b/packages/grafana-ui/src/components/DataTable/DataTable.tsx @@ -86,7 +86,8 @@ export class DataTable extends Component { // Update the data when data or sort changes if (dataChanged || sortBy !== prevState.sortBy || sortDirection !== prevState.sortDirection) { - this.setState({ data: sortTableData(data, sortBy, sortDirection === 'DESC') }); + const sorted = data ? sortTableData(data, sortBy, sortDirection === 'DESC') : data; + this.setState({ data: sorted }); } } diff --git a/packages/grafana-ui/src/components/DataTable/renderer.test.ts b/packages/grafana-ui/src/components/DataTable/renderer.test.ts index fdb7dc49e4d..28f217b11f0 100644 --- a/packages/grafana-ui/src/components/DataTable/renderer.test.ts +++ b/packages/grafana-ui/src/components/DataTable/renderer.test.ts @@ -3,7 +3,6 @@ import TableModel from 'app/core/table_model'; import { getColorDefinitionByName } from '@grafana/ui'; import { ScopedVars } from '@grafana/ui/src/types'; -import moment from 'moment'; import { TableRenderer } from './renderer'; import { Index } from 'react-virtualized'; import { ColumnStyle } from './DataTable'; diff --git a/packages/grafana-ui/src/components/DataTable/renderer.tsx b/packages/grafana-ui/src/components/DataTable/renderer.tsx index fb6263fd4d7..11977dc2e6f 100644 --- a/packages/grafana-ui/src/components/DataTable/renderer.tsx +++ b/packages/grafana-ui/src/components/DataTable/renderer.tsx @@ -98,7 +98,7 @@ export class TableRenderer { } } - createColumnFormatter(header: Column, style?: ColumnStyle): CellFormatter { + createColumnFormatter(schema: Column, style?: ColumnStyle): CellFormatter { if (!style) { return this.defaultCellFormatter; } @@ -181,7 +181,7 @@ export class TableRenderer { } if (style.type === 'number') { - const valueFormatter = getValueFormat(style.unit || header.unit); + const valueFormatter = getValueFormat(style.unit || schema.unit || 'none'); return v => { if (v === null || v === void 0) { diff --git a/packages/grafana-ui/src/utils/processTimeSeries.ts b/packages/grafana-ui/src/utils/processTimeSeries.ts index 08872648f44..3f2fded1da6 100644 --- a/packages/grafana-ui/src/utils/processTimeSeries.ts +++ b/packages/grafana-ui/src/utils/processTimeSeries.ts @@ -174,8 +174,8 @@ export function processTimeSeries({ timeSeries, nullValueMode }: Options): TimeS return vmSeries; } -export function sortTableData(data?: TableData, sortIndex?: number, reverse = false): TableData { - if (data && isNumber(sortIndex)) { +export function sortTableData(data: TableData, sortIndex?: number, reverse = false): TableData { + if (isNumber(sortIndex)) { const copy = { ...data, rows: [...data.rows].sort((a, b) => {