a46764fb1b
ci / Validate workspace (push) Has been cancelled
landing-page-ci / Validate landing page (push) Has been cancelled
landing-page-deploy / Deploy landing page (push) Has been cancelled
github-metrics / Generate repository metrics SVG (push) Has been cancelled
refresh-contributors-wall / Refresh contributors wall cache bust (push) Waiting to run
18 lines
619 B
TypeScript
18 lines
619 B
TypeScript
'use client';
|
|
|
|
import dynamic from 'next/dynamic';
|
|
|
|
// The product is a fully client-driven SPA — every component reads
|
|
// localStorage, window.location, etc. — so we opt out of static-time
|
|
// rendering for the entire tree. This keeps `next build --output export`
|
|
// from trying to evaluate browser-only code while still emitting a real
|
|
// shell HTML the daemon can serve as the SPA fallback.
|
|
const App = dynamic(() => import('../../src/App').then((m) => m.App), {
|
|
ssr: false,
|
|
loading: () => <div className="od-loading-shell">Loading Open Design…</div>,
|
|
});
|
|
|
|
export function ClientApp() {
|
|
return <App />;
|
|
}
|