"use client"; import { useEffect, useState } from "react"; import { apiBaseUrl } from "@/lib/api-client"; import { setSession, type AuthUser } from "@/lib/auth-token"; import { AuthShell } from "../shell"; export default function ActivatePage() { const [state, setState] = useState<"working" | "ok" | "error">("working"); useEffect(() => { const token = new URLSearchParams(window.location.search).get("token"); if (!token) return setState("error"); fetch(`${apiBaseUrl}/api/v1/auth/activate`, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ token }), }) .then((r) => (r.ok ? r.json() : Promise.reject(new Error("activate failed")))) .then((data: { access_token: string; user?: AuthUser }) => { setSession(data.access_token, data.user ?? {}); setState("ok"); setTimeout(() => (window.location.href = "/matrix-builder"), 900); }) .catch(() => setState("error")); }, []); if (state === "working") return ; if (state === "ok") return ; return ( ); }