Add localStorage persistence for ROI dashboard — keyed by referral username, auto-saves and auto-restores

This commit is contained in:
Marty Bostick
2026-07-29 15:50:34 +00:00
parent c8ac5a62c5
commit 8dc2a8941a
+34
View File
@@ -2125,6 +2125,7 @@ function updateROI() {
document.getElementById('roiBarPhase').style.width = '0%';
document.querySelectorAll('.roi-ladder-step').forEach(el => el.classList.remove('active', 'passed'));
document.getElementById('roiMilestones').innerHTML = '<div style="color:var(--text-muted);font-size:0.85rem;padding:10px 0;">Enter your numbers above to see your progress 🚀</div>';
saveROIData(deposits, earned, phase, cyclesDone);
return;
}
@@ -2220,6 +2221,30 @@ function updateROI() {
</div>
</div>
`).join('');
// Save to localStorage
saveROIData(deposits, earned, phase, cyclesDone);
}
// ─── localStorage persistence ──────────────────────────
function getROIStorageKey() {
const ref = getRefFromURL() || 'cryptoteambuild';
return 'cbp_roi_' + ref;
}
function saveROIData(deposits, earned, phase, cyclesDone) {
const key = getROIStorageKey();
const data = { deposits, earned, phase, cyclesDone };
try { localStorage.setItem(key, JSON.stringify(data)); } catch(e) {}
}
function loadROIData() {
const key = getROIStorageKey();
try {
const raw = localStorage.getItem(key);
if (raw) return JSON.parse(raw);
} catch(e) {}
return null;
}
// Wire up ROI inputs
@@ -2229,6 +2254,15 @@ function updateROI() {
el.addEventListener('change', updateROI);
});
// Load saved data on page load
const saved = loadROIData();
if (saved) {
document.getElementById('roiDeposits').value = saved.deposits || '';
document.getElementById('roiTotalEarned').value = saved.earned || '';
if (saved.phase) document.getElementById('roiPhase').value = saved.phase;
document.getElementById('roiCyclesDone').value = saved.cyclesDone !== undefined ? saved.cyclesDone : '';
}
// Initial render on page load (delayed to ensure DOM is ready)
setTimeout(updateROI, 150);
</script>