Earn: claim streak (5/7/10, 25 every 7th day), after-set prompts for verified visits and launching a campaign
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
+10
-4
@@ -1693,11 +1693,17 @@
|
||||
const done = st.views >= st.target;
|
||||
$('earnClaimBtn').hidden = !(done && !st.claimed);
|
||||
if (st.claimed) {
|
||||
$('earnHint').textContent = 'Claimed for today. Come back tomorrow, or put those credits to work in Campaigns.';
|
||||
const box = $('earnAdBox'); if (box && !box.querySelector('.done-big')) box.innerHTML = '<div class="done-big"><span class="tick">✓</span><b>Ads done for today</b><span class="muted small">Today\'s set is viewed and claimed. Fresh ads tomorrow.</span></div>';
|
||||
$('earnHint').textContent = 'Claimed for today' + (st.streakDay > 1 ? ' (streak day ' + st.streakDay + ')' : '') + '. Tomorrow\'s claim pays ' + st.nextClaim + ' credits if you come back.';
|
||||
// after the set (Marty, 2026-09-12): keep going with verified visits, and turn the credits into a campaign
|
||||
const box = $('earnAdBox');
|
||||
if (box) box.innerHTML = '<div class="done-big"><span class="tick">✓</span><b>Ads done for today</b><span class="muted small">Today\'s set is viewed and claimed. Fresh ads tomorrow.</span>'
|
||||
+ '<div style="display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:14px">'
|
||||
+ (st.visitsLeft ? '<button type="button" class="btn small" data-earnnext="visits">Keep earning: ' + st.visitsLeft + ' verified visit' + (st.visitsLeft === 1 ? '' : 's') + ' left today</button>' : '')
|
||||
+ '<button type="button" class="btn sec small" data-earnnext="campaigns">Launch a campaign with your ' + (st.earnedAvailable != null ? st.earnedAvailable : st.earned) + ' credits</button></div></div>';
|
||||
if (box) box.querySelectorAll('[data-earnnext]').forEach(b => b.addEventListener('click', () => { if (b.dataset.earnnext === 'campaigns') setPane('campaigns'); else setEarnSub('visits'); }));
|
||||
if ($('earnStartBtn')) $('earnStartBtn').hidden = true;
|
||||
} else if ($('earnStartBtn')) $('earnStartBtn').hidden = false;
|
||||
else if (done) $('earnHint').textContent = 'Set complete. Claim your ' + st.claimCredits + ' credits.';
|
||||
else if (done) $('earnHint').textContent = 'Set complete. Claim your ' + st.claimCredits + ' credits' + (st.streakDay > 1 ? ' (streak day ' + st.streakDay + ')' : '') + '.';
|
||||
return st;
|
||||
} catch (e) { return null; }
|
||||
}
|
||||
@@ -1760,7 +1766,7 @@
|
||||
$('earnClaimBtn').addEventListener('click', async () => {
|
||||
try {
|
||||
const r = await api('/api/my/claim');
|
||||
IAP.status('+' + r.credited + ' credits earned. Spend them in Campaigns.', 'ok');
|
||||
IAP.status('+' + r.credited + ' credits earned' + (r.streakDay > 1 ? ', streak day ' + r.streakDay : '') + '. Tomorrow\'s claim pays ' + r.nextClaim + '. Spend them in Campaigns.', 'ok');
|
||||
await earnRefresh();
|
||||
loadDashboard();
|
||||
} catch (e) { IAP.status(e.message, 'bad'); }
|
||||
|
||||
Reference in New Issue
Block a user