Skip to content

Commit 6c42a62

Browse files
committed
fix(Preview): sort numbers as numbers, not string
1 parent ced3b47 commit 6c42a62

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/containers/Tenant/Preview/Preview.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import Fullscreen from '../../../components/Fullscreen/Fullscreen';
1212
import {sendQuery, setQueryOptions} from '../../../store/reducers/preview';
1313
import {showTooltip, hideTooltip} from '../../../store/reducers/tooltip';
1414
import {prepareQueryError, prepareQueryResponse} from '../../../utils/index';
15+
import {isNumeric} from '../../../utils/utils';
1516

1617
import {isTableType} from '../utils/schema';
1718
import {AutoFetcher} from '../../../utils/autofetcher';
@@ -127,6 +128,8 @@ class Preview extends React.Component {
127128
if (data && data.length > 0) {
128129
columns = Object.keys(data[0]).map((key) => ({
129130
name: key,
131+
align: isNumeric(data[0][key]) ? DataTable.RIGHT : DataTable.LEFT,
132+
sortAccessor: (row) => isNumeric(row[key]) ? Number(row[key]) : row[key],
130133
render: ({value}) => {
131134
return (
132135
<span

src/utils/utils.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,11 @@ export function pad9(val) {
8181
result = "0" + result;
8282
}
8383
return result;
84-
}
84+
}
85+
86+
export function isNumeric(value) {
87+
// need both isNaN and isNaN(parseFloat):
88+
// - isNaN treats true/false/''/etc. as numbers, parseFloat fixes this
89+
// - parseFloat treats '123qwe' as number, isNaN fixes this
90+
return !isNaN(value) && !isNaN(parseFloat(value));
91+
};

0 commit comments

Comments
 (0)