tldraw/packages/www/pages/r/[id].tsx

46 lines
980 B
TypeScript
Raw Normal View History

2021-09-04 12:18:44 +00:00
import * as React from 'react'
import type { GetServerSideProps } from 'next'
2021-09-06 13:37:48 +00:00
import Head from 'next/head'
2021-09-04 12:18:44 +00:00
import { getSession } from 'next-auth/client'
import dynamic from 'next/dynamic'
const Editor = dynamic(() => import('components/editor'), { ssr: false })
interface RoomProps {
id: string
}
export default function Room({ id }: RoomProps): JSX.Element {
2021-09-06 13:37:48 +00:00
return (
<>
<Head>
<title>tldraw</title>
</Head>
<Editor id={id} />
</>
)
2021-09-04 12:18:44 +00:00
}
export const getServerSideProps: GetServerSideProps = async (context) => {
const session = await getSession(context)
if (!session?.user && process.env.NODE_ENV !== 'development') {
context.res.setHeader('Location', `/sponsorware`)
context.res.statusCode = 307
}
const id = context.query.id?.toString()
// Get document from database
// If document does not exist, create an empty document
// Return the document
return {
props: {
id,
session,
},
}
}