diff --git a/src/app/configure/page.tsx b/src/app/configure/page.tsx new file mode 100644 index 0000000..83b66a7 --- /dev/null +++ b/src/app/configure/page.tsx @@ -0,0 +1,43 @@ +'use client'; + +import Link from 'next/link'; +import { ConfiguratorSection } from '@/components/ConfiguratorSection'; + +export default function ConfigurePage() { + return ( + <> + {/* Back button */} + + + + + Back + + + + + ); +} diff --git a/src/app/page.tsx b/src/app/page.tsx index 375df35..f00e3e2 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -4,7 +4,6 @@ import { useRef } from "react"; import { ClientOnly } from "@/components/ClientOnly"; import { ScrollScene } from "@/components/ScrollScene"; import { ScrollOverlays } from "@/components/ScrollOverlays"; -import { ConfiguratorSection } from "@/components/ConfiguratorSection"; export default function HomePage() { const scrollContainerRef = useRef(null); @@ -29,11 +28,6 @@ export default function HomePage() {
- - {/* Configurator section */} -
- -
); } diff --git a/src/components/ScrollOverlays.tsx b/src/components/ScrollOverlays.tsx index 8b37455..665e860 100644 --- a/src/components/ScrollOverlays.tsx +++ b/src/components/ScrollOverlays.tsx @@ -2,6 +2,7 @@ import { useScroll, useTransform, motion } from 'framer-motion'; import { ReactNode } from 'react'; +import Link from 'next/link'; interface SectionProps { children: ReactNode; @@ -253,6 +254,51 @@ export function ScrollOverlays() {
+ {/* Configure CTA — appears at the very end of scroll */} + + + Configure Your G1 + + + + + + Build & Order Your Robot + + + {/* Scroll indicator mapped to vanish rapidly when scrolled */} ((set, get) => ({ // Merge: server wins for label/price, but keep local modelPath if server doesn't have one const localItems = get().items; const localMap = new Map(localItems.map((l) => [l.id, l])); - const merged = serverItems.map((s) => { + const merged: PricingItem[] = serverItems.map((s) => { const local = localMap.get(s.id); return { ...s,