lazy-stage.tsx

src/components/trim-viewer/lazy-stage.tsx
'use client'
import dynamic from 'next/dynamic'
/**
* Code-split the WebGL trim stage so three.js and the R3F runtime load in their
* own client chunk, on demand, and the cards gate mounting on scroll, so the chunk
* fetches only when a viewer actually enters view.
*/
export const TrimStage = dynamic(
() => import('./stage').then((m) => ({ default: m.TrimStage })),
{ 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