Member pages: send readers to the proof, not back to the same video
Marty spotted that a member's page played the angle video and then its button sent readers to /join/<id>?v=<angle> — which is a SQUEEZE step that shows that same video again before anything else. His instinct was to jump straight to /join-now. That fixes the replay but skips the proof layer: the live payout feed, the 2-4-8-16 explainer, the toolkit line and the sponsor card all live on the full invite page. Going from a personal story directly to "connect your wallet and send POL" is a big jump for somebody who arrived cold from a Traffic Desk banner. So the button now drops the ?v= and lands on the full invite page. The existing design already gives exactly the wanted behaviour — the squeeze step is skipped, the proof is kept, and no new parameter was needed. The QR deliberately keeps the angle: a scanned code often reaches someone who never saw the page, off a printout, and the hook video is what they need. Also: payout alerts now name what an upgrade unlocked, on upgrade pass-ups only. Marty noticed the toolkit was never mentioned — the unlock line was wired to `upgraded` events, which are rare next to payouts. On a pass-up the buyer below just climbed, so saying what they unlocked makes the reason for the payment concrete. Entry rewards stay silent: nobody changed level. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -101,7 +101,13 @@ async function notifyEvent(evt) {
|
||||
const chat = memberChat(evt.toId);
|
||||
if (!chat) return;
|
||||
const kind = evt.kind === 'upline' ? `${evt.gen ? `Gen ${evt.gen} ` : ''}upgrade pass-up from #${evt.fromId}` : `referral reward from #${evt.fromId}'s entry`;
|
||||
await dm(chat, `💰 You just caught ${evt.pol.toFixed(2)} POL — ${kind}.\nVerify: https://polygonscan.com/tx/${evt.tx}\n\nYour pipeline: https://rmcircle.team/my/${evt.toId}`);
|
||||
// Upgrade pass-up: tell the catcher what the person below just unlocked.
|
||||
// It makes the reason for the payment concrete, and it is a natural nudge
|
||||
// toward their own next rung without asking for anything.
|
||||
const upTools = evt.kind === 'upline' ? suiteTools.unlockText(0, evt.levelName, getConfig()) : '';
|
||||
await dm(chat, `💰 You just caught ${evt.pol.toFixed(2)} POL — ${kind}.` +
|
||||
(upTools ? `\n\n#${evt.fromId} reached ${evt.levelName}, which unlocked ${upTools} for them — and their climb is what put this on you.` : '') +
|
||||
`\nVerify: https://polygonscan.com/tx/${evt.tx}\n\nYour pipeline: https://rmcircle.team/my/${evt.toId}`);
|
||||
} else if (evt.type === 'upgraded') {
|
||||
// Congratulate the member who upgraded, and tell them what it opened up.
|
||||
const chat = memberChat(evt.id);
|
||||
|
||||
Reference in New Issue
Block a user