"use client"; import { useEffect, useState } from "react"; import { useParams } from "next/navigation"; import { useSession } from "next-auth/react"; import { AtlasChat } from "@/components/AtlasChat"; import { OrchestratorChat } from "@/components/OrchestratorChat"; import { Loader2 } from "lucide-react"; function MobileQRButton({ projectId, workspace }: { projectId: string; workspace: string }) { const [show, setShow] = useState(false); const url = typeof window !== "undefined" ? `${window.location.origin}/${workspace}/project/${projectId}/overview` : ""; const qrSrc = `https://api.qrserver.com/v1/create-qr-code/?size=180x180&data=${encodeURIComponent(url)}&bgcolor=f6f4f0&color=1a1a1a&margin=2`; return (
{show && (
QR code

Scan to open Atlas on your phone

{url}

)}
); } interface Project { id: string; productName: string; stage?: "discovery" | "architecture" | "building" | "active"; } export default function ProjectOverviewPage() { const params = useParams(); const projectId = params.projectId as string; const workspace = params.workspace as string; const { status: authStatus } = useSession(); const [project, setProject] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { if (authStatus !== "authenticated") { if (authStatus === "unauthenticated") setLoading(false); return; } fetch(`/api/projects/${projectId}`) .then((r) => r.json()) .then((d) => setProject(d.project)) .catch(() => {}) .finally(() => setLoading(false)); }, [authStatus, projectId]); if (loading) { return (
); } if (!project) { return (
Project not found.
); } return (
{/* Desktop-only: Open on phone button */}
{(!project.stage || project.stage === "discovery") ? ( ) : ( )}
); }