From d03a968d8c5841ebd9dba40c1e28b0f29c7f783f Mon Sep 17 00:00:00 2001
From: Gaurang Ratnaparkhi <68043860+gnaaruag@users.noreply.github.com>
Date: Thu, 30 May 2024 19:17:04 +0530
Subject: [PATCH] calorie data persists with the help of local storage
---
index.html | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/index.html b/index.html
index 8600b19..93a785a 100644
--- a/index.html
+++ b/index.html
@@ -78,14 +78,14 @@
Calorie Status
// user configuration ------
// these will count our calories burned at rest
-let calorieCount = 0;
+let calorieCount = parseFloat(localStorage.getItem('calorieCount')) || 0;
const hourlyCalorieBurn = 2000 / 24.0; // burned per hour
// goal is to lose 500 kcal/day (i.e. ~1 lb/week)
-let desiredDeficitCount = 0;
+let desiredDeficitCount = parseFloat(localStorage.getItem('desiredDeficitCount')) || 0;
const hourlyCalorieTargetDeficit = 500 / 24.0;
// --------------------------
-let lastUpdateTime = Date.now();
+let lastUpdateTime = parseInt(localStorage.getItem('lastUpdateTime')) || Date.now();
function updateCalorieCount() {
const currentTime = Date.now();
@@ -97,22 +97,33 @@ Calorie Status
document.getElementById('deficit-count').innerText = "GOAL: " + desiredDeficitCount.toFixed(2);
let color = calorieCount < desiredDeficitCount ? 'green' : 'red'; // green if met, red otherwise
document.getElementById('deficit-count').style.color = color;
+
+ // store the updated values in local storage
+ localStorage.setItem('calorieCount', calorieCount);
+ localStorage.setItem('desiredDeficitCount', desiredDeficitCount);
+ localStorage.setItem('lastUpdateTime', lastUpdateTime.toString());
}
document.getElementById('reset-button').addEventListener('click', () => {
calorieCount = 0;
- desiredDeficitCount = 0; // reset the goal counter as well
+ desiredDeficitCount = 0;
lastUpdateTime = Date.now();
+ localStorage.setItem('calorieCount', calorieCount);
+ localStorage.setItem('desiredDeficitCount', desiredDeficitCount);
+ localStorage.setItem('lastUpdateTime', lastUpdateTime.toString());
+ updateCalorieCount();
});
document.getElementById('exercise-button').addEventListener('click', () => {
updateCalorieCount();
calorieCount -= 100;
+ localStorage.setItem('calorieCount', calorieCount);
});
document.getElementById('eat-button').addEventListener('click', () => {
updateCalorieCount();
calorieCount += 100;
+ localStorage.setItem('calorieCount', calorieCount);
});
setInterval(updateCalorieCount, 500); // update counter every 500ms