From 9c2dbcf00b944cca546875af4f0bcab695119a40 Mon Sep 17 00:00:00 2001 From: Ashutosh Bishnoi Date: Fri, 27 Nov 2020 16:31:49 +0530 Subject: Chart report code improvements and refactoring --- modern/src/common/converter.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 modern/src/common/converter.js (limited to 'modern/src/common/converter.js') diff --git a/modern/src/common/converter.js b/modern/src/common/converter.js new file mode 100644 index 0000000..8fdb4b8 --- /dev/null +++ b/modern/src/common/converter.js @@ -0,0 +1,24 @@ +const speedConverter = (value, unit) => { + let factor; + switch (unit) { + case 'kmh': + factor = 1.852; + case 'mph': + factor = 1.15078; + case 'kn': + default: + factor = 1; + } + return (value * factor).toFixed(2); +}; + +export const getConverter = (key) => { + switch (key) { + case 'speed': + return speedConverter; + default: + return function (value) { + return value; + } + } +}; \ No newline at end of file -- cgit v1.2.3 From 7a431062aa79ac9c9524638e60cb4b06323ea697 Mon Sep 17 00:00:00 2001 From: Ashutosh Bishnoi Date: Sat, 28 Nov 2020 13:23:13 +0530 Subject: Chart report code improvements and refactoring --- modern/src/common/converter.js | 13 +------------ modern/src/reports/ChartReportPage.js | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 21 deletions(-) (limited to 'modern/src/common/converter.js') diff --git a/modern/src/common/converter.js b/modern/src/common/converter.js index 8fdb4b8..e48b076 100644 --- a/modern/src/common/converter.js +++ b/modern/src/common/converter.js @@ -1,4 +1,4 @@ -const speedConverter = (value, unit) => { +export const speedConverter = (value, unit) => { let factor; switch (unit) { case 'kmh': @@ -11,14 +11,3 @@ const speedConverter = (value, unit) => { } return (value * factor).toFixed(2); }; - -export const getConverter = (key) => { - switch (key) { - case 'speed': - return speedConverter; - default: - return function (value) { - return value; - } - } -}; \ No newline at end of file diff --git a/modern/src/reports/ChartReportPage.js b/modern/src/reports/ChartReportPage.js index 19ec9c1..21c069c 100644 --- a/modern/src/reports/ChartReportPage.js +++ b/modern/src/reports/ChartReportPage.js @@ -4,7 +4,7 @@ import ReportFilter from './ReportFilter'; import ReportLayoutPage from './ReportLayoutPage'; import { useAttributePreference } from '../common/preferences'; import { formatDate } from '../common/formatter'; -import { getConverter } from '../common/converter'; +import { speedConverter } from '../common/converter'; import {LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts'; const ReportFilterForm = ({ setItems }) => { @@ -16,17 +16,18 @@ const ReportFilterForm = ({ setItems }) => { const response = await fetch(`/api/reports/route?${query.toString()}`, { headers }); if (response.ok) { - const data = await response.json(); + const positions = await response.json(); - let formattedData = data.map(obj => { - return Object.assign( - obj, - {speed: Number(getConverter('speed')(obj.speed, speedUnit))}, - {fixTime: formatDate(obj.fixTime)} - ); + let formattedPositions = positions.map(position => { + return { + speed:Number(speedConverter(position.speed, speedUnit)), + altitude:position.altitude, + accuracy:position.accuracy, + fixTime:formatDate(position.fixTime) + } }); - setItems(formattedData); + setItems(formattedPositions); } } -- cgit v1.2.3