"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 && (
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") ? (
) : (
)}
);
}