Add localStorage persistence for ROI dashboard — keyed by referral username, auto-saves and auto-restores
This commit is contained in:
+34
@@ -2125,6 +2125,7 @@ function updateROI() {
|
|||||||
document.getElementById('roiBarPhase').style.width = '0%';
|
document.getElementById('roiBarPhase').style.width = '0%';
|
||||||
document.querySelectorAll('.roi-ladder-step').forEach(el => el.classList.remove('active', 'passed'));
|
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>';
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2220,6 +2221,30 @@ function updateROI() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
`).join('');
|
`).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
|
// Wire up ROI inputs
|
||||||
@@ -2229,6 +2254,15 @@ function updateROI() {
|
|||||||
el.addEventListener('change', 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)
|
// Initial render on page load (delayed to ensure DOM is ready)
|
||||||
setTimeout(updateROI, 150);
|
setTimeout(updateROI, 150);
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user