mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-29 07:20:43 +00:00
/beta's portal is one component now. A stranger has it in the site's frame; a member has the app in its Betas mode (@hanzo/app 0.2.27: no sidebar there) with the same portal as its pane: the form if there is no application, a plan step once after filing (Pro with the beta code, or stay on Free), then the dashboard. Every share link, on the dashboard, the referral card, /referral and the page share widget, goes out through tagged(): the sharer's ref and the channel as utm_source, so a visit, a lead and a signup each say who shared and where. The page share widget's tracking was a no-op; it records waitlist_shared now. Claude-Session: https://claude.ai/code/session_017vrVus6PPBgP5YRzKV1iqW
34 lines
971 B
TypeScript
34 lines
971 B
TypeScript
'use client'
|
|
|
|
/**
|
|
* /beta — the beta portal (components/beta/portal.tsx): in the site's frame for
|
|
* a stranger, and for a member the app in its Betas mode with the same portal as
|
|
* its pane (./_door.tsx).
|
|
*/
|
|
|
|
import { AccountProvider } from '@hanzo/app/lib/account'
|
|
import { BOOT } from '@hanzo/app/lib/session'
|
|
import { SiteHeader, SiteFooter } from '@/components/home/shell'
|
|
import { Box } from '@/components/ui'
|
|
import Closing from '@/components/marketing/Closing'
|
|
import { Portal } from '@/components/beta/portal'
|
|
import { Door } from './_door'
|
|
|
|
export default function BetaPage() {
|
|
return (
|
|
<Door>
|
|
<script dangerouslySetInnerHTML={{ __html: BOOT }} />
|
|
<AccountProvider>
|
|
<Box minH="100vh" $platform-web={{ color: 'var(--foreground)' }}>
|
|
<SiteHeader />
|
|
<main id="main">
|
|
<Portal />
|
|
</main>
|
|
<Closing />
|
|
<SiteFooter />
|
|
</Box>
|
|
</AccountProvider>
|
|
</Door>
|
|
)
|
|
}
|