From 937e90b5f47d896bb25bb026b72b6be04f4b2bbe Mon Sep 17 00:00:00 2001 From: Thomas Fuhrmann Date: Thu, 27 Mar 2025 11:12:33 +0100 Subject: [PATCH] Add search params for modelId --- app/components/Map.tsx | 6 +++--- app/page.tsx | 12 +++++++++--- app/three/SceneView.ts | 31 +++++++++++++++++++------------ 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/app/components/Map.tsx b/app/components/Map.tsx index 493ba77..882d776 100644 --- a/app/components/Map.tsx +++ b/app/components/Map.tsx @@ -11,7 +11,7 @@ async function lazyLoad() { return SceneView; } -export function Map() { +export function Map({ modelId }: { modelId: string }) { const divRef = useRef(null); const { setSceneView } = useContext(SceneViewContext) as SceneViewContextType; @@ -22,7 +22,7 @@ export function Map() { async function loadScene() { if (divRef.current) { const SceneView = await lazyLoad(); - const _sceneView = await SceneView.create(divRef.current, "20"); + const _sceneView = await SceneView.create(divRef.current, modelId); if (_sceneView) { setSceneView(_sceneView); } @@ -36,7 +36,7 @@ export function Map() { return () => { ignore = true; }; - }, [divRef, setSceneView]); + }, [divRef, setSceneView, modelId]); return (
diff --git a/app/page.tsx b/app/page.tsx index 6e89581..9689ac7 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -3,11 +3,17 @@ import { Map } from "./components/Map"; import { Form } from "./components/Form"; import { SceneViewProvider } from "./providers/scene-view-provider"; -import { useState } from "react"; +import { use, useState } from "react"; import { ResetView } from "./components/ResetView"; +import { MODEL_ID } from "./three/config"; -export default function Home() { +export default function Home({ + searchParams, +}: { + searchParams: Promise<{ [key: string]: string | string[] | undefined }>; +}) { const [isFormOpen, setIsFormOpen] = useState(false); + const modelId = (use(searchParams).modelId as string) ?? MODEL_ID; return (
@@ -29,7 +35,7 @@ export default function Home() {
- +