diff --git a/packages/grafana-ui/src/components/Table/utils.ts b/packages/grafana-ui/src/components/Table/utils.ts index 6559d078de8..ce37b5c99fd 100644 --- a/packages/grafana-ui/src/components/Table/utils.ts +++ b/packages/grafana-ui/src/components/Table/utils.ts @@ -35,7 +35,7 @@ export function getTextAlign(field?: Field): TextAlignProperty { } export function getColumns(data: DataFrame, availableWidth: number, columnMinWidth: number): Column[] { - const columns: Column[] = []; + const columns: any[] = []; let fieldCountWithoutWidth = data.fields.length; for (const [fieldIndex, field] of data.fields.entries()) { @@ -50,6 +50,15 @@ export function getColumns(data: DataFrame, availableWidth: number, columnMinWid fieldCountWithoutWidth -= 1; } + const selectSortType = (type: FieldType): string => { + switch (type) { + case FieldType.number: + case FieldType.time: + return 'basic'; + default: + return 'alphanumeric'; + } + }; const Cell = getCellComponent(fieldTableOptions.displayMode, field); columns.push({ Cell, @@ -58,6 +67,7 @@ export function getColumns(data: DataFrame, availableWidth: number, columnMinWid accessor: (row: any, i: number) => { return field.values.get(i); }, + sortType: selectSortType(field.type), width: fieldTableOptions.width, minWidth: 50, });