mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
Every page that names points reads the cloud's rewards: the board (GET /v1/rewards), the reader's standing, badges and history (/v1/rewards/me), the listing (/v1/rewards/optin) and the rules table (/v1/rewards/rules), snapshotted at build into lib/data/rewards-rules.json and asked again when a page opens. The hard-coded RULES tiles, POINTS, the client-side score and lib/hanzo/board.ts are gone; /beta and /referral draw the same Rules and board and link to /leaderboard. /leaderboard is the home: tabs by source and period, Your standing, badges earned and locked, the rules, token milestones and levels, Link GitHub through the existing per-person connection (the page completes the grant GitHub returns), and Share your rank with a leaderboard card. /bounty prints the contribution kinds and cap, three steps, the open issues labelled bounty or good first issue in Hanzo's orgs (searched at build with a token only), My contributions and the rules. A star now counts for the linked GitHub account, so Earn more offers Link GitHub. The cards, nav, footer, llms.txt and sitemap carry both pages; /founder no longer says points go nowhere. Claude-Session: https://claude.ai/code/session_017vrVus6PPBgP5YRzKV1iqW
15 lines
452 B
TypeScript
15 lines
452 B
TypeScript
import type { Metadata } from 'next'
|
|
import { pageMeta } from '@/lib/page-meta'
|
|
import { LEADERBOARD } from '@/components/rewards/words'
|
|
|
|
// The page is 'use client', so its metadata lives here, in the page's own words.
|
|
export const metadata: Metadata = pageMeta({
|
|
title: LEADERBOARD.title,
|
|
description: LEADERBOARD.line,
|
|
path: '/leaderboard',
|
|
})
|
|
|
|
export default function Layout({ children }: { children: React.ReactNode }) {
|
|
return children
|
|
}
|