create-chrome-ext
Version:
Scaffolding your chrome extension, multiple boilerplates supported!
49 lines (40 loc) • 1.13 kB
JSX
import { Component } from 'inferno'
import './Popup.css'
export class Popup extends Component {
link = 'https://github.com/guocaoyi/create-chrome-ext'
state = { count: 0 }
constructor(props) {
super(props)
chrome.storage.sync.get(['count'], (result) => {
this.setState({ count: result.count || 0 })
})
}
minus = () => {
if (this?.state?.count > 0) {
this.setState({ count: --this.state.count })
}
}
add = () => this.setState({ count: ++this.state.count })
componentDidUpdate() {
chrome.storage.sync.set({ count: this.state.count })
chrome.runtime.sendMessage({ type: 'COUNT', count: this.state.count })
}
render() {
return (
<main>
<h3>Popup Page</h3>
<div className="calc">
<button onClick={this.minus} disabled={this.state.count <= 0}>
-
</button>
<label>{this.state.count}</label>
<button onClick={this.add}>+</button>
</div>
<a href={this.link} target="_blank">
generated by create-chrome-ext
</a>
</main>
)
}
}
export default Popup