Skip to content

Commit d2c452b

Browse files
Add support for float numbers in renderers and use locale string for numbers (#72)
* Add thousand separator to SingleValueChart * Extract get type and renderer into util * Added unified rendering for single values/tables * Add thousand separator for numbers, unified rendering for single number charts (#71) * Add thousand separator to SingleValueChart * Extract get type and renderer into util * Added unified rendering for single values/tables Co-authored-by: Marius Conjeaud <[email protected]> Co-authored-by: Niels de Jong <[email protected]> * Add thousand separator for numbers, unified rendering for single number charts (#71) * Add thousand separator to SingleValueChart * Extract get type and renderer into util * Added unified rendering for single values/tables Co-authored-by: Marius Conjeaud <[email protected]> Co-authored-by: Niels de Jong <[email protected]> * Add support for float rendering Co-authored-by: Marius Conjeaud <[email protected]> Co-authored-by: Niels de Jong <[email protected]>
1 parent 118bb57 commit d2c452b

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

src/chart/SingleValueChart.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import React from 'react';
33
import { ChartProps } from './Chart';
44

5-
import { getRecordType, getRendererForValue, renderValueByType } from '../report/RecordProcessing';
5+
import { renderValueByType } from '../report/RecordProcessing';
66
/**
77
* Renders Neo4j records as their JSON representation.
88
*/

src/chart/TableChart.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import React from 'react';
22
import { DataGrid } from '@mui/x-data-grid';
33
import { ChartProps } from './Chart';
4-
import { getRecordType, getRendererForValue } from '../report/RecordProcessing';
4+
5+
import { getRendererForValue } from '../report/RecordProcessing';
56

67
function ApplyColumnType(column, value) {
78
const renderer = getRendererForValue(value);

src/report/RecordProcessing.tsx

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,8 @@ export function getRecordType(value) {
269269
} else if (value === null) {
270270
return 'null';
271271
} else if (value.__isInteger__) {
272+
return 'integer';
273+
} else if (typeof(value) == "number") {
272274
return 'number';
273275
} else if (value.__isDate__) {
274276
return 'date';
@@ -345,9 +347,13 @@ function RenderString(value) {
345347
return str;
346348
}
347349

350+
function RenderInteger(value) {
351+
const integer = value.toInt().toLocaleString();
352+
return integer;
353+
}
354+
348355
function RenderNumber(value) {
349-
const thousandsSeperator=" ";
350-
const number = value.toString().replace(/\B(?=(\d{3})+(?!\d))/g,thousandsSeperator);
356+
const number = value.toLocaleString();
351357
return number;
352358
}
353359

@@ -395,6 +401,10 @@ const rendererForType: any = {
395401
type: 'string',
396402
renderValue: (c) => RenderString(c.value),
397403
},
404+
"integer": {
405+
type: 'number',
406+
renderValue: (c) => RenderInteger(c.value)
407+
},
398408
"number": {
399409
type: 'number',
400410
renderValue: (c) => RenderNumber(c.value)
@@ -414,5 +424,5 @@ export function getRendererForValue(value) {
414424

415425
export function renderValueByType(value){
416426
const renderer = getRendererForValue(value);
417-
renderer.renderValue({value:value});
427+
return renderer.renderValue({value:value});
418428
}

0 commit comments

Comments
 (0)