Achievement badges + milestone credit bonuses

- Idempotent one-time credit bonus per milestone (payouts/firstBuyer/level2/level3): 10/25/50/100 cr
- Overview badges strip (unlockable medals) with canvas share-to-image (username overlaid)
- Newly-unlocked milestones toast the bonus on next dashboard load

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
martbost
2026-09-06 08:43:50 -05:00
parent 7701a29169
commit 9e05711f4e
12 changed files with 120 additions and 26 deletions
+9 -5
View File
@@ -4,7 +4,7 @@
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>Member area | InstantAdPay</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Sora:wght@600;700;800&display=swap">
<link rel="stylesheet" href="/assets/site.css?v=20260905z">
<link rel="stylesheet" href="/assets/site.css?v=20260906a">
</head>
<body class="bo-body">
@@ -186,6 +186,10 @@
</div>
<div class="nc-steps" id="ncSteps"></div>
</div>
<div class="card" id="badgeCard" hidden>
<div class="card-head"><h3>Your achievements</h3><span class="sub">unlock as you build</span></div>
<div class="badges" id="badgeStrip"></div>
</div>
<div class="grid c2">
<div class="card">
<h3>Recent activity</h3>
@@ -529,9 +533,9 @@
</div>
</div>
<script src="/assets/common.js?v=20260905z"></script>
<script src="/assets/wallet.js?v=20260905z"></script>
<script src="/assets/my.js?v=20260905z"></script>
<script src="/assets/chat.js?v=20260905z"></script>
<script src="/assets/common.js?v=20260906a"></script>
<script src="/assets/wallet.js?v=20260906a"></script>
<script src="/assets/my.js?v=20260906a"></script>
<script src="/assets/chat.js?v=20260906a"></script>
</body>
</html>