add imperial units

This commit is contained in:
madarsbiss 2021-07-21 11:37:47 +03:00
parent c329b12b17
commit 80e57e1bcf

View File

@ -7,7 +7,7 @@ export default function Home() {
const [systemUsed, setSystemUsed] = useState("metric"); const [systemUsed, setSystemUsed] = useState("metric");
const [weatherData, setWeatherData] = useState(); const [weatherData, setWeatherData] = useState();
const clickHandler = async () => { const getData = async () => {
const res = await fetch("/api/data", { const res = await fetch("/api/data", {
method: "POST", method: "POST",
headers: { "Content-Type": "application/json" }, headers: { "Content-Type": "application/json" },
@ -21,10 +21,14 @@ export default function Home() {
const something = (event) => { const something = (event) => {
if (event.keyCode === 13) { if (event.keyCode === 13) {
clickHandler(); getData();
} }
}; };
useEffect(() => {
getData();
}, []);
function degToCompass(num) { function degToCompass(num) {
var val = Math.floor(num / 22.5 + 0.5); var val = Math.floor(num / 22.5 + 0.5);
var arr = [ var arr = [
@ -56,8 +60,16 @@ export default function Home() {
return time; return time;
}; };
const ctoF = (c) => (c * 9) / 5 + 32;
const mpsToMph = (mps) => (mps * 2.236936).toPrecision(3);
const changeSystem = () => { const changeSystem = () => {
console.log("system changed"); console.log("system changed");
if (systemUsed == "metric") {
setSystemUsed("imperial");
} else {
setSystemUsed("metric");
}
}; };
var weekday = [ var weekday = [
@ -70,8 +82,6 @@ export default function Home() {
"Saturday", "Saturday",
]; ];
// console.log(convertTime(weatherData.dt, weatherData.timezone));
return ( return (
<div className={styles.wrapper}> <div className={styles.wrapper}>
{weatherData && ( {weatherData && (
@ -91,9 +101,18 @@ export default function Home() {
/> />
<h1 className={styles.mainTemp}> <h1 className={styles.mainTemp}>
{Math.round(weatherData.main.temp)}° {systemUsed == "metric"
? Math.round(weatherData.main.temp)
: Math.round(ctoF(weatherData.main.temp))}
°
</h1> </h1>
<p>Feels like {Math.round(weatherData.main.feels_like)}°</p> <p>
Feels like{" "}
{systemUsed == "metric"
? Math.round(weatherData.main.feels_like)
: Math.round(ctoF(weatherData.main.feels_like))}
°
</p>
</div> </div>
)} )}
<div className={styles.statsWrapper}> <div className={styles.statsWrapper}>
@ -153,8 +172,12 @@ export default function Home() {
width="100px" width="100px"
/> />
<div> <div>
<h1>{weatherData.wind.speed}</h1> <h1>
<p>m/s</p> {systemUsed == "metric"
? weatherData.wind.speed
: mpsToMph(weatherData.wind.speed)}
</h1>
<p>{systemUsed == "metric" ? "m/s" : "m/h"}</p>
</div> </div>
</div> </div>
</div> </div>
@ -233,6 +256,8 @@ export default function Home() {
</div> </div>
</div> </div>
)} )}
<p onClick={changeSystem}>Metric System</p>
<p onClick={changeSystem}>Imperial System</p>
</div> </div>
</div> </div>
); );