diff --git a/frontend/app/api/m/route.ts b/frontend/app/api/m/route.ts new file mode 100644 index 00000000..41f78fc5 --- /dev/null +++ b/frontend/app/api/m/route.ts @@ -0,0 +1,19 @@ +import { NextRequest, NextResponse } from "next/server"; +import { buildBackendRequestHeaders } from "@/lib/backend-auth"; + +const API_BASE = process.env.POLYWEATHER_API_BASE_URL; + +export async function GET(req: NextRequest) { + if (!API_BASE) { + return new NextResponse("API not configured", { status: 500 }); + } + const isCards = req.nextUrl.searchParams.get("cards") === "1"; + const path = isCards ? "/m/cards" : "/m"; + const auth = await buildBackendRequestHeaders(req, { includeSupabaseIdentity: false }); + const res = await fetch(`${API_BASE}${path}`, { headers: auth.headers }); + const html = await res.text(); + return new NextResponse(html, { + status: res.status, + headers: { "Content-Type": "text/html; charset=utf-8" }, + }); +} diff --git a/frontend/components/dashboard/ScanTerminalDashboard.tsx b/frontend/components/dashboard/ScanTerminalDashboard.tsx index 30dff0e4..81610334 100644 --- a/frontend/components/dashboard/ScanTerminalDashboard.tsx +++ b/frontend/components/dashboard/ScanTerminalDashboard.tsx @@ -47,7 +47,7 @@ import { useUserLocalClock, } from "@/components/dashboard/scan-terminal/use-scan-terminal-ui-state"; -type ContentView = "analysis" | "map"; +type ContentView = "analysis" | "map" | "monitor"; const CityDetailPanel = dynamic( () => @@ -334,6 +334,17 @@ function ScanTerminalScreen() { /> ); } + if (resolvedView === "monitor") { + return ( +