mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
79a7878c7d
Electron recommends to disable nodeIntegration in BrowserViews. This PR follows this recommendation and updates the example accordingly. Changes: - disable nodeIntegration - update dependencies
57 lines
1.2 KiB
JavaScript
57 lines
1.2 KiB
JavaScript
import { Component } from 'react'
|
|
|
|
export default class extends Component {
|
|
state = {
|
|
input: '',
|
|
message: null
|
|
}
|
|
|
|
componentDidMount () {
|
|
// start listening the channel message
|
|
global.ipcRenderer.on('message', this.handleMessage)
|
|
}
|
|
|
|
componentWillUnmount () {
|
|
// stop listening the channel message
|
|
global.ipcRenderer.removeListener('message', this.handleMessage)
|
|
}
|
|
|
|
handleMessage = (event, message) => {
|
|
// receive a message from the main process and save it in the local state
|
|
this.setState({ message })
|
|
}
|
|
|
|
handleChange = event => {
|
|
this.setState({ input: event.target.value })
|
|
}
|
|
|
|
handleSubmit = event => {
|
|
event.preventDefault()
|
|
global.ipcRenderer.send('message', this.state.input)
|
|
this.setState({ message: null })
|
|
}
|
|
|
|
render () {
|
|
return (
|
|
<div>
|
|
<h1>Hello Electron!</h1>
|
|
|
|
{this.state.message &&
|
|
<p>{this.state.message}</p>
|
|
}
|
|
|
|
<form onSubmit={this.handleSubmit}>
|
|
<input type='text' onChange={this.handleChange} />
|
|
</form>
|
|
|
|
<style jsx>{`
|
|
h1 {
|
|
color: red;
|
|
font-size: 50px;
|
|
}
|
|
`}</style>
|
|
</div>
|
|
)
|
|
}
|
|
}
|