1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
next.js/examples/with-portals/pages/index.js
2017-12-02 18:02:22 +01:00

32 lines
788 B
JavaScript

import { Component } from 'react'
import dynamic from 'next/dynamic'
// we import and render the modal only client side (because we need a DOM)
const Modal = dynamic(import('../components/modal'), {
ssr: false
})
export default class extends Component {
state = { modal: false };
toggleModal = () => this.setState(state => ({ modal: !state.modal }))
render () {
return (
<main>
<button type='button' onClick={this.toggleModal}>
Open modal
</button>
{this.state.modal && (
<Modal title='My Modal Portal'>
<p>This is a portal rendered from Next.js</p>
<button type='button' onClick={this.toggleModal}>
Close
</button>
</Modal>
)}
</main>
)
}
}