threed-ai
Version:
'threed-ai' supporting Vite, Next, Nuxt, as a functioning, low-dependency app, a package supporting monorepos of workspaces that utilize 'ThreeJS, WebGL, React, TypeScript <r3Fiber>, GraphQL'.
36 lines (30 loc) • 915 B
JSX
import { useEffect } from 'react'
import { useRouter } from 'next/router'
import dynamic from 'next/dynamic'
import { setState } from '~/stores/store'
import Header from '~/components/seo/config'
import Dom from '~/components/layout/dom'
import '~/styles/index.css'
// ==============================================================
// CUSTOM IMPORT (SSR true|false)
const LCanvas = dynamic(() => import('~/components/layout/canvas'), {
ssr: true,
})
// ==============================================================
// NEXT APP
const App = ({ Component, pageProps = { title: 'index' } }) => {
const router = useRouter()
useEffect(() => {
setState({ router })
}, [router])
return (
<>
<Header title={pageProps.title} />
<Dom>
<Component {...pageProps} />
</Dom>
{Component?.r3f && <LCanvas>{Component.r3f(pageProps)}</LCanvas>}
</>
)
}
export default App