refactor: export utils methods to utils.js

This commit is contained in:
Jean Robertou 2021-08-06 21:11:39 +02:00
parent 04fbf8ebf3
commit c61dbb875b
2 changed files with 32 additions and 34 deletions

View File

@ -1,12 +1,11 @@
import React from "react"; import React from "react";
import { degToCompass } from "../services/converters";
import { import {
convertTime, getTime,
degToCompass, getAMPM,
kmToM, getVisibility,
mpsToMph, getWindSpeed,
timeToAMPM, } from "../services/utils";
} from "../services/converters";
import { isPM } from "../services/utils";
import MetricCard from "./MetricCard"; import MetricCard from "./MetricCard";
const Metrics = ({ styles, data, systemUsed }) => { const Metrics = ({ styles, data, systemUsed }) => {
@ -23,9 +22,7 @@ const Metrics = ({ styles, data, systemUsed }) => {
<MetricCard <MetricCard
title={"Wind speed"} title={"Wind speed"}
iconSrc={"/icons/017-wind.png"} iconSrc={"/icons/017-wind.png"}
metric={ metric={getWindSpeed(systemUsed, data.wind.speed)}
systemUsed == "metric" ? data.wind.speed : mpsToMph(data.wind.speed)
}
unit={systemUsed == "metric" ? "m/s" : "m/h"} unit={systemUsed == "metric" ? "m/s" : "m/h"}
styles={styles} styles={styles}
/> />
@ -40,11 +37,7 @@ const Metrics = ({ styles, data, systemUsed }) => {
<MetricCard <MetricCard
title={"Visibility"} title={"Visibility"}
iconSrc={"/icons/binocular.png"} iconSrc={"/icons/binocular.png"}
metric={ metric={getVisibility(systemUsed, data.visibility)}
systemUsed == "metric"
? (data.visibility / 1000).toPrecision(2)
: kmToM(data.visibility / 1000)
}
unit={systemUsed == "metric" ? "km" : "miles"} unit={systemUsed == "metric" ? "km" : "miles"}
styles={styles} styles={styles}
/> />
@ -52,31 +45,16 @@ const Metrics = ({ styles, data, systemUsed }) => {
<MetricCard <MetricCard
title={"Sunrise"} title={"Sunrise"}
iconSrc={"/icons/040-sunrise.png"} iconSrc={"/icons/040-sunrise.png"}
metric={ metric={getTime(systemUsed, data.sys.sunrise, data.timezone)}
systemUsed == "metric" unit={getAMPM(systemUsed, data.sys.sunset, data.timezone)}
? `${parseInt(
convertTime(data.sys.sunrise, data.timezone)[0].split(":")[0]
)}:${
convertTime(data.sys.sunrise, data.timezone)[0].split(":")[1]
}`
: timeToAMPM(convertTime(data.sys.sunrise, data.timezone)[0])
}
styles={styles} styles={styles}
/> />
<MetricCard <MetricCard
title={"Sunset"} title={"Sunset"}
iconSrc={"/icons/041-sunset.png"} iconSrc={"/icons/041-sunset.png"}
metric={ metric={getTime(systemUsed, data.sys.sunset, data.timezone)}
systemUsed == "metric" unit={getAMPM(systemUsed, data.sys.sunset, data.timezone)}
? convertTime(data.sys.sunset, data.timezone)[0]
: timeToAMPM(convertTime(data.sys.sunset, data.timezone)[0])
}
unit={
systemUsed == "imperial"
? isPM(convertTime(data.sys.sunset, data.timezone)[0])
: ""
}
styles={styles} styles={styles}
/> />
</div> </div>

View File

@ -1,3 +1,5 @@
import { convertTime, kmToM, mpsToMph, timeToAMPM } from "./converters";
export const isPM = (time) => { export const isPM = (time) => {
let hours = time.split(":")[0]; let hours = time.split(":")[0];
if (hours >= 12) { if (hours >= 12) {
@ -6,3 +8,21 @@ export const isPM = (time) => {
return "AM"; return "AM";
} }
}; };
export const getWindSpeed = (systemUsed, windInMph) =>
systemUsed == "metric" ? windInMph : mpsToMph(windInMph);
export const getVisibility = (systemUsed, visibilityInKm) =>
systemUsed == "metric"
? (visibilityInKm / 1000).toPrecision(2)
: kmToM(visibilityInKm / 1000);
export const getTime = (systemUsed, currentTime, timezone) =>
systemUsed == "metric"
? `${parseInt(convertTime(currentTime, timezone)[0].split(":")[0])}:${
convertTime(currentTime, timezone)[0].split(":")[1]
}`
: timeToAMPM(convertTime(currentTime, timezone)[0]);
export const getAMPM = (systemUsed, currentTime, timezone) =>
systemUsed == "imperial" ? isPM(convertTime(currentTime, timezone)[0]) : "";