Fix: email-only members were locked out of the members area
refreshNavWallet assumed every signed-in session has a wallet address and threw on null for email-only members; the catch returned null and render() treated the member as signed out even though the session and cookie were valid. Nav now shows the email (or member badge) when no wallet is linked. Verified with a full browser cycle: session landing, logout, fresh code sign-in. Assets v=20260904k. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -52,8 +52,11 @@ window.IAP = (function () {
|
||||
const el = $('navWallet');
|
||||
if (!el) return;
|
||||
if (me.signedIn) {
|
||||
el.innerHTML = (me.memberId ? '<span class="badge">member #' + me.memberId + '</span> ' : '')
|
||||
+ '<span class="mono">' + me.address.slice(0, 6) + '…' + me.address.slice(-4) + '</span>';
|
||||
// email-only members have no wallet address yet
|
||||
const who = me.address
|
||||
? '<span class="mono">' + me.address.slice(0, 6) + '…' + me.address.slice(-4) + '</span>'
|
||||
: (me.email ? String(me.email).replace(/[&<>]/g, '') : 'signed in');
|
||||
el.innerHTML = (me.memberId ? '<span class="badge">member #' + me.memberId + '</span> ' : '') + who;
|
||||
} else {
|
||||
el.innerHTML = '<a href="/my">Sign in</a>';
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<title>The contract | InstantAdPay</title>
|
||||
<meta name="description" content="Plain-language review of the InstantAdPay settlement contract: what it does, what nobody can change, what the operator can and cannot touch, and how to verify all of it yourself.">
|
||||
<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=20260904j">
|
||||
<link rel="stylesheet" href="/assets/site.css?v=20260904k">
|
||||
</head>
|
||||
<body>
|
||||
<div class="wrap">
|
||||
@@ -129,8 +129,8 @@
|
||||
<div class="small">Advertising services with a performance referral program. Not an investment product; no income guarantees. Crypto transactions are irreversible. Never spend what you cannot afford.</div>
|
||||
</footer>
|
||||
</div>
|
||||
<script src="/assets/common.js?v=20260904j"></script>
|
||||
<script src="/assets/contract.js?v=20260904j"></script>
|
||||
<script src="/assets/chat.js?v=20260904j"></script>
|
||||
<script src="/assets/common.js?v=20260904k"></script>
|
||||
<script src="/assets/contract.js?v=20260904k"></script>
|
||||
<script src="/assets/chat.js?v=20260904k"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+5
-5
@@ -5,7 +5,7 @@
|
||||
<title>InstantAdPay: advertise and earn, locked in code</title>
|
||||
<meta name="description" content="Real ad packages with instant on-chain settlement. Every purchase pays the sponsor line in the same transaction, verifiable by anyone on the live ledger.">
|
||||
<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=20260904j">
|
||||
<link rel="stylesheet" href="/assets/site.css?v=20260904k">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -398,9 +398,9 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script src="/assets/common.js?v=20260904j"></script>
|
||||
<script src="/assets/wallet.js?v=20260904j"></script>
|
||||
<script src="/assets/home.js?v=20260904j"></script>
|
||||
<script src="/assets/chat.js?v=20260904j"></script>
|
||||
<script src="/assets/common.js?v=20260904k"></script>
|
||||
<script src="/assets/wallet.js?v=20260904k"></script>
|
||||
<script src="/assets/home.js?v=20260904k"></script>
|
||||
<script src="/assets/chat.js?v=20260904k"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+4
-4
@@ -5,7 +5,7 @@
|
||||
<title>Live ledger | InstantAdPay</title>
|
||||
<meta name="description" content="Every purchase, payout, and pass-up on InstantAdPay, streamed straight from the blockchain with a verify link on every line.">
|
||||
<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=20260904j">
|
||||
<link rel="stylesheet" href="/assets/site.css?v=20260904k">
|
||||
</head>
|
||||
<body>
|
||||
<div class="wrap">
|
||||
@@ -25,8 +25,8 @@
|
||||
<div>InstantAdPay · <a href="/">how it works</a> · <a id="contractLink" href="#" target="_blank" rel="noopener">contract source ↗</a></div>
|
||||
</footer>
|
||||
</div>
|
||||
<script src="/assets/common.js?v=20260904j"></script>
|
||||
<script src="/assets/ledger.js?v=20260904j"></script>
|
||||
<script src="/assets/chat.js?v=20260904j"></script>
|
||||
<script src="/assets/common.js?v=20260904k"></script>
|
||||
<script src="/assets/ledger.js?v=20260904k"></script>
|
||||
<script src="/assets/chat.js?v=20260904k"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+5
-5
@@ -4,7 +4,7 @@
|
||||
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>My account | 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=20260904j">
|
||||
<link rel="stylesheet" href="/assets/site.css?v=20260904k">
|
||||
</head>
|
||||
<body>
|
||||
<div class="wrap">
|
||||
@@ -160,9 +160,9 @@
|
||||
|
||||
<footer><div>InstantAdPay · <a href="/ledger">live ledger</a></div></footer>
|
||||
</div>
|
||||
<script src="/assets/common.js?v=20260904j"></script>
|
||||
<script src="/assets/wallet.js?v=20260904j"></script>
|
||||
<script src="/assets/my.js?v=20260904j"></script>
|
||||
<script src="/assets/chat.js?v=20260904j"></script>
|
||||
<script src="/assets/common.js?v=20260904k"></script>
|
||||
<script src="/assets/wallet.js?v=20260904k"></script>
|
||||
<script src="/assets/my.js?v=20260904k"></script>
|
||||
<script src="/assets/chat.js?v=20260904k"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user