rsnext/test/integration/app-tree/pages/hello.tsx
Filip Wojciechowski 92e26ce1b1 better type for AppTree in NextPageContext (#8662)
* better type for AppTree in NextPageContext

* updated tests

* new AppTreeType type and updated tests

* removed a commented out line

* another take on the type of AppTree, with updated tests

* allow passing additional props to AppType

* Update suite name
2019-09-09 11:23:34 -05:00

34 lines
746 B
TypeScript

import React from 'react'
import { render } from 'react-dom'
import { renderToString } from 'react-dom/server'
import { NextPage } from 'next'
const Page: NextPage<{ html: string }> = ({ html }) =>
html ? (
<>
<p>saved:</p>
<div dangerouslySetInnerHTML={{ __html: html }} />
</>
) : (
<p>Hello world</p>
)
Page.getInitialProps = async ({ AppTree }) => {
let html: string
const toRender = <AppTree pageProps={{}} />
if (typeof window !== 'undefined') {
const el = document.createElement('div')
document.querySelector('body').appendChild(el)
render(toRender, el)
html = el.innerHTML
el.remove()
} else {
html = renderToString(toRender)
}
return { html }
}
export default Page