import Link from "next/link"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { BrandMark } from "@/components/layout/BrandMark"; import { listSessions } from "@/lib/db/queries/sessions"; import { getSessionsSummary } from "@/lib/db/queries/stats"; // Always reflects live DB state for an authenticated, single-tenant app - // never worth prerendering (and the DB file doesn't exist at build time). export const dynamic = "force-dynamic"; export default async function DashboardPage() { const [sessions, summary] = await Promise.all([listSessions(), getSessionsSummary()]); const recentSessions = [...sessions].reverse().slice(0, 5); return (
Scan for nearby devices, take control, and replay completed sessions later - all running directly from your browser over Web Bluetooth.
No sessions yet.
} {recentSessions.map((s, i) => ( {i > 0 && }