From 3e5ef37008fd009821181b1d539622a44b8cd745 Mon Sep 17 00:00:00 2001 From: Ashutosh Bishnoi Date: Wed, 10 Feb 2021 12:13:13 +0530 Subject: completed maintenance screen --- modern/src/MainToolbar.js | 1 - modern/src/common/converter.js | 8 +++--- modern/src/settings/MaintenancePage.js | 46 ++++++++++++++++++++++++++++++---- 3 files changed, 45 insertions(+), 10 deletions(-) (limited to 'modern') diff --git a/modern/src/MainToolbar.js b/modern/src/MainToolbar.js index cfbdab9..ebe2efd 100644 --- a/modern/src/MainToolbar.js +++ b/modern/src/MainToolbar.js @@ -30,7 +30,6 @@ import FormatListBulletedIcon from '@material-ui/icons/FormatListBulleted'; import TrendingUpIcon from '@material-ui/icons/TrendingUp'; import FolderIcon from '@material-ui/icons/Folder'; import ReplayIcon from '@material-ui/icons/Replay'; -import PublishIcon from '@material-ui/icons/Publish'; import BuildIcon from '@material-ui/icons/Build'; import t from './common/localization'; diff --git a/modern/src/common/converter.js b/modern/src/common/converter.js index 8193e77..930dba1 100644 --- a/modern/src/common/converter.js +++ b/modern/src/common/converter.js @@ -1,4 +1,4 @@ -export const speedConverter = (value, unit) => { +export const speedConverter = (value, unit, back = false) => { let factor; switch (unit) { case 'kmh': @@ -11,10 +11,10 @@ export const speedConverter = (value, unit) => { default: factor = 1; } - return (value * factor).toFixed(2); + return back ? (value / factor).toFixed(2):(value * factor).toFixed(2); }; -export const distanceConverter = (value, unit) => { +export const distanceConverter = (value, unit, back = false) => { let factor; switch (unit) { case 'mi': @@ -27,5 +27,5 @@ export const distanceConverter = (value, unit) => { default: factor = 0.001; } - return (value * factor).toFixed(2); + return back ? value / factor : value * factor; } \ No newline at end of file diff --git a/modern/src/settings/MaintenancePage.js b/modern/src/settings/MaintenancePage.js index 9c27459..b5486f7 100644 --- a/modern/src/settings/MaintenancePage.js +++ b/modern/src/settings/MaintenancePage.js @@ -7,6 +7,7 @@ import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import EditAttributesView from '../attributes/EditAttributesView'; import positionAttributes from '../attributes/positionAttributes'; import { useAttributePreference } from '../common/preferences'; +import { distanceConverter, speedConverter } from '../common/converter'; const useStyles = makeStyles(() => ({ details: { @@ -33,7 +34,7 @@ const MaintenancePage = () => { const handleChange = event => { const newValue = event.target.value; - setItem({...item, type: newValue}); + setItem({...item, type: newValue, start: 0, period: 0}); const attribute = positionAttributes[newValue]; if (attribute && attribute.dataType) { @@ -50,6 +51,41 @@ const MaintenancePage = () => { } } + const rawToValue = (rawValue) => { + + const attribute = positionAttributes[item.type]; + if (attribute && attribute.dataType) { + switch (attribute.dataType) { + case 'speed': + return speedConverter(rawValue, speedUnit, false); + case 'distance': + return distanceConverter(rawValue, distanceUnit, false); + default: + return rawValue; + } + } + + return rawValue; + + } + + const valueToRaw = (value) => { + + const attribute = positionAttributes[item.type]; + if (attribute && attribute.dataType) { + switch (attribute.dataType) { + case 'speed': + return speedConverter(value, speedUnit, true); + case 'distance': + return distanceConverter(value, distanceUnit, true); + default: + return value; + } + } + + return value; + } + return ( {item && @@ -80,8 +116,8 @@ const MaintenancePage = () => { setItem({...item, start: event.target.value})} + value={rawToValue(item.start) || ''} + onChange={event => setItem({...item, start: valueToRaw(event.target.value)})} label={t('maintenanceStart')} variant="filled" InputProps={{ @@ -90,8 +126,8 @@ const MaintenancePage = () => { setItem({...item, period: event.target.value})} + value={rawToValue(item.period) || ''} + onChange={event => setItem({...item, period: valueToRaw(event.target.value)})} label={t('maintenancePeriod')} variant="filled" InputProps={{ -- cgit v1.2.3