chore: dev dep @playwright/test

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
ahmed mohammed
2026-09-22 08:32:40 +03:00
co-authored by Claude Opus 4.7
parent ac4cbdd9e6
commit ee4a88e499
13 changed files with 228 additions and 4 deletions
+20
View File
@@ -0,0 +1,20 @@
import { notFound, redirect } from "next/navigation";
import { requireUser } from "@/lib/auth";
import { getAnalysis } from "@/lib/db";
import { ReportView } from "@/components/report-view";
import { ExportButtons } from "@/components/export-buttons";
import { VerdictSummary } from "@/components/verdict-summary";
export default async function Stored({ params }: { params: Promise<{ id: string }> }) {
const u = await requireUser();
const a = getAnalysis((await params).id, u.id);
if (!a) notFound();
if (a.status === "running") redirect(`/app/${a.id}`); // still streaming elsewhere; rare, bounce once
return <main style={{ display: "grid", gap: "var(--qai-space-xl)" }}>
<h1 style={{ fontFamily: "var(--qai-font-display)", fontSize: "var(--qai-text-2xl)", margin: 0 }}>{a.title}</h1>
{a.error && <p role="alert" style={{ color: "var(--qai-danger)" }}>{a.error}</p>}
{a.verdict && <VerdictSummary verdict={JSON.parse(a.verdict)} />}
{a.oul ? <><ExportButtons oul={a.oul} title={a.title} /><ReportView oul={a.oul} streaming={false} /></>
: <p className="label">No report was stored for this run.</p>}
</main>;
}
+3 -2
View File
@@ -1,9 +1,10 @@
import { requireUser } from "@/lib/auth";
import { Rail } from "@/components/rail";
export default async function Console({ children }: { children: React.ReactNode }) {
await requireUser();
const u = await requireUser();
return <div className="shell">
<aside className="rail" aria-label="Previous analyses">qAI</aside>
<aside className="rail no-print" aria-label="Previous analyses"><Rail userId={u.id} /></aside>
<main className="main">{children}</main>
</div>;
}
+2 -1
View File
@@ -1 +1,2 @@
export default function NewAnalysis() { return <h1 style={{ fontFamily: "var(--qai-font-display)" }}>New analysis</h1>; }
import { Runner } from "@/components/runner";
export default function Run() { return <Runner />; }