tldraw/pages/room/[id].tsx
2021-07-07 15:42:17 +01:00

35 lines
884 B
TypeScript

import dynamic from 'next/dynamic'
import { GetServerSideProps } from 'next'
import { getSession } from 'next-auth/client'
import { useEffect } from 'react'
import coopState from 'state/coop/coop-state'
const Editor = dynamic(() => import('components/editor'), { ssr: false })
export default function Room({ id }: { id: string }): JSX.Element {
useEffect(() => {
coopState.send('JOINED_ROOM', { id })
return () => {
coopState.send('LEFT_ROOM')
}
}, [])
return <Editor roomId={id} />
}
export const getServerSideProps: GetServerSideProps = async (context) => {
const session = await getSession(context)
const { id } = context.query
if (!session?.user && process.env.NODE_ENV !== 'development') {
context.res.setHeader('Location', `/sponsorware`)
context.res.statusCode = 307
}
return {
props: {
session,
id,
},
}
}