import { Link, useNavigate, useOutletContext } from "react-router-dom"; import { Clock, Mail } from "lucide-react"; import { CreateInbox } from "@/client/components/create-inbox"; import { Card } from "@/client/components/ui"; import type { AppShellContext } from "@/client/components/app-shell"; import { fullDate } from "@/client/lib/time"; export function LandingPage() { const { sessions, onCreated } = useOutletContext(); const navigate = useNavigate(); return (
{/* Compact hero */}

Test inboxes for transactional email.

Real addresses that catch real email. Watch signup confirmations, password resets, and magic links land the moment your app sends them.

{/* Create form + recent inboxes */}
{ onCreated(session); navigate(`/inbox/${encodeURIComponent(session.address)}`); }} />

Recent inboxes

{sessions.length === 0 ? (

No inboxes yet. They'll show up here when you create one.

) : (
{sessions.map((session, i) => { const expires = new Date(session.expiresAt); const remaining = expires.getTime() - Date.now(); const alive = remaining > 0; return (
{session.address} {alive ? `expires ${fullDate(session.expiresAt)}` : "expired"}
); })}
)}
); }