From c3379b0bee8045ec8a605e39a3a4275e4bf54110 Mon Sep 17 00:00:00 2001 From: ajvpot <553597+ajvpot@users.noreply.github.com> Date: Thu, 3 Jul 2025 00:00:00 +0000 Subject: [PATCH] stuff --- src/app/api/{node-positions => map}/route.ts | 4 +- src/app/layout.tsx | 7 +- src/components/ConfigContext.tsx | 185 ++++++++++++++- src/components/Header.tsx | 4 +- src/components/MapView.tsx | 235 ++++++++++++++++--- src/lib/clickhouse/actions.ts | 9 +- 6 files changed, 399 insertions(+), 45 deletions(-) rename src/app/api/{node-positions => map}/route.ts (80%) diff --git a/src/app/api/node-positions/route.ts b/src/app/api/map/route.ts similarity index 80% rename from src/app/api/node-positions/route.ts rename to src/app/api/map/route.ts index 0b0decc..03ea42d 100644 --- a/src/app/api/node-positions/route.ts +++ b/src/app/api/map/route.ts @@ -8,7 +8,9 @@ export async function GET(req: Request) { const maxLat = searchParams.get("maxLat"); const minLng = searchParams.get("minLng"); const maxLng = searchParams.get("maxLng"); - const positions = await getNodePositions({ minLat, maxLat, minLng, maxLng }); + const nodeTypes = searchParams.getAll("nodeTypes"); + const lastSeen = searchParams.get("lastSeen"); + const positions = await getNodePositions({ minLat, maxLat, minLng, maxLng, nodeTypes, lastSeen }); return NextResponse.json(positions); } catch (error) { return NextResponse.json({ error: "Failed to fetch node positions" }, { status: 500 }); diff --git a/src/app/layout.tsx b/src/app/layout.tsx index bf43a87..251c994 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -2,6 +2,7 @@ import type { Metadata } from "next"; import { Geist, Geist_Mono } from "next/font/google"; import "./globals.css"; import Header from "../components/Header"; +import { ConfigProvider } from "../components/ConfigContext"; const geistSans = Geist({ variable: "--font-geist-sans", @@ -30,8 +31,10 @@ export default function RootLayout({ style={{ '--header-height': '64px' } as React.CSSProperties} >