lazy-stage.tsx

src/components/panel-viewer/lazy-stage.tsx
'use client'
import dynamic from 'next/dynamic'
/**
* Code-split the WebGL stage so three.js and the R3F runtime load in their own
* client chunk, on demand, rather than weighing down the initial bundle. The
* homepage cards already gate mounting on scroll, so the chunk fetches only
* when a viewer actually enters view.
*/
export const PanelStage = dynamic(
() => import('./stage').then((m) => ({ default: m.PanelStage })),
{ ssr: false },
)

Support

Talk to the developers of this project to learn more

We have been building professional websites for big clients for over 15 years. Gallop templates and blocks is our best foundation for SEO websites and web apps.

© 2026 Web Plant Media, LLC