Skip to content

Commit b2b2513

Browse files
Feat: Remember last conversion using local storage
1 parent 2d01a1b commit b2b2513

File tree

1 file changed

+40
-2
lines changed

1 file changed

+40
-2
lines changed

script.js

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,31 @@ document.addEventListener('DOMContentLoaded', function() {
77
const convertButton = document.getElementById('convertButton');
88
const clearButton = document.getElementById('clearButton');
99

10+
function saveConversion() {
11+
localStorage.setItem('lastKilograms', kilogramsInput.value);
12+
localStorage.setItem('lastGrams', gramsInput.value);
13+
localStorage.setItem('lastPounds', poundsInput.value);
14+
localStorage.setItem('lastMilligrams', milligramsInput.value);
15+
}
16+
17+
function loadLastConversion() {
18+
const lastKilograms = localStorage.getItem('lastKilograms');
19+
const lastGrams = localStorage.getItem('lastGrams');
20+
const lastPounds = localStorage.getItem('lastPounds');
21+
const lastMilligrams = localStorage.getItem('lastMilligrams');
22+
23+
if (lastKilograms !== null) kilogramsInput.value = lastKilograms;
24+
if (lastGrams !== null) gramsInput.value = lastGrams;
25+
if (lastPounds !== null) poundsInput.value = lastPounds;
26+
if (lastMilligrams !== null) milligramsInput.value = lastMilligrams;
27+
28+
// Trigger input events to perform conversions on load if values are present
29+
if (lastKilograms) kilogramsInput.dispatchEvent(new Event('input'));
30+
else if (lastGrams) gramsInput.dispatchEvent(new Event('input'));
31+
else if (lastPounds) poundsInput.dispatchEvent(new Event('input'));
32+
else if (lastMilligrams) milligramsInput.dispatchEvent(new Event('input'));
33+
}
34+
1035
function clearAllInputsExcept(elementToExclude) {
1136
if (elementToExclude !== kilogramsInput) kilogramsInput.value = '';
1237
if (elementToExclude !== gramsInput) gramsInput.value = '';
@@ -21,6 +46,9 @@ document.addEventListener('DOMContentLoaded', function() {
2146
gramsInput.value = (kg * 1000).toFixed(2);
2247
poundsInput.value = (kg * 2.20462).toFixed(2);
2348
milligramsInput.value = (kg * 1000000).toFixed(2);
49+
saveConversion();
50+
} else {
51+
saveConversion(); // Still save even if input is cleared
2452
}
2553
});
2654

@@ -31,6 +59,9 @@ document.addEventListener('DOMContentLoaded', function() {
3159
kilogramsInput.value = (g / 1000).toFixed(2);
3260
poundsInput.value = (g * 0.00220462).toFixed(2);
3361
milligramsInput.value = (g * 1000).toFixed(2);
62+
saveConversion();
63+
} else {
64+
saveConversion();
3465
}
3566
});
3667

@@ -41,6 +72,9 @@ document.addEventListener('DOMContentLoaded', function() {
4172
kilogramsInput.value = (lbs / 2.20462).toFixed(2);
4273
gramsInput.value = (lbs / 0.00220462).toFixed(2);
4374
milligramsInput.value = (lbs * 453592.37).toFixed(2);
75+
saveConversion();
76+
} else {
77+
saveConversion();
4478
}
4579
});
4680

@@ -51,12 +85,13 @@ document.addEventListener('DOMContentLoaded', function() {
5185
kilogramsInput.value = (mg / 1000000).toFixed(2);
5286
gramsInput.value = (mg / 1000).toFixed(2);
5387
poundsInput.value = (mg / 453592.37).toFixed(2);
88+
saveConversion();
89+
} else {
90+
saveConversion();
5491
}
5592
});
5693

5794
convertButton.addEventListener('click', function() {
58-
// The input event listeners already handle the conversion in real-time.
59-
// This button could be repurposed for something else or removed.
6095
alert("Conversions are now real-time as you type!");
6196
});
6297

@@ -65,5 +100,8 @@ document.addEventListener('DOMContentLoaded', function() {
65100
gramsInput.value = '';
66101
poundsInput.value = '';
67102
milligramsInput.value = '';
103+
saveConversion(); // Save empty values to clear local storage on clear
68104
});
105+
106+
loadLastConversion();
69107
});

0 commit comments

Comments
 (0)