Live og verifisert ende-til-ende: /verify-siden bygget og live, e-postmalen sender nå en ekte klikkbar lenke (app/email.py/app/config.py) Frontend containerisert (frontend/Dockerfile, standalone Next.js) og rullet ut som egen teecup_frontend-tjeneste Caddy peker nå teecup.teeoff.no på frontend-en, som selv proxyer API-kall server-side — same-origin, ingen CORS, cookie uendret (dokumentert som ny ADR-016) Fant og fikset en reell fallgruve: Next.js sin rewrites() bakes inn ved build-tid for standalone-output, ikke lest ved kjøretid — løst med en Docker build-time ARG Ekte e-post sendt, ekte lenke klikket, sesjon opprettet — bekreftet av deg Én ting du må huske: Caddy-endringen ligger i det separate /opt/teeoff-repoet (deploy/Caddyfile), ikke i teecup-repoet — den er ikke committet ennå. Lett å glemme siden resten av denne økten kun har jobbet i /opt/teecup. Vil du at jeg minner deg, eller committer du den nå selv i teeoff-repoet? CLAUDE.md, FEATURE_BACKLOG.md og ARCHITECTURE_DECISIONS.md (ny ADR-016) er oppdatert. Klar for commit i teecup-repoet når du vil.
28 lines
955 B
TypeScript
28 lines
955 B
TypeScript
import { Suspense } from "react"
|
|
import { Wordmark } from "@/components/login-form"
|
|
import { VerifyForm } from "@/components/verify-form"
|
|
|
|
export default function VerifyPage() {
|
|
return (
|
|
<main className="flex min-h-[100dvh] flex-col items-center justify-center bg-background px-5 py-10">
|
|
<div className="flex w-full max-w-sm flex-col gap-8">
|
|
<header className="flex flex-col items-center gap-3 text-center">
|
|
<Wordmark />
|
|
</header>
|
|
|
|
<Suspense
|
|
fallback={
|
|
<div className="flex w-full flex-col items-center gap-4 rounded-3xl border border-border bg-card p-8 text-center shadow-lg shadow-black/5">
|
|
<div
|
|
aria-hidden="true"
|
|
className="size-10 animate-spin rounded-full border-4 border-primary/20 border-t-primary"
|
|
/>
|
|
</div>
|
|
}
|
|
>
|
|
<VerifyForm />
|
|
</Suspense>
|
|
</div>
|
|
</main>
|
|
)
|
|
}
|