Newer
Older
piotr.kupczyk@id.ethz.ch
committed
import autoBind from 'auto-bind'
export default class ComponentContext {
constructor(component) {
autoBind(this)
this.initStateFn = initialState => {
piotr.kupczyk@id.ethz.ch
committed
component.state = initialState
}
this.getPropsFn = () => {
piotr.kupczyk@id.ethz.ch
committed
return component.props
}
this.getStateFn = () => {
piotr.kupczyk@id.ethz.ch
committed
return component.state
}
this.setStateFn = component.setState.bind(component)
piotr.kupczyk@id.ethz.ch
committed
}
initState(initialState) {
this.initStateFn(initialState)
piotr.kupczyk@id.ethz.ch
committed
}
getProps() {
return this.getPropsFn()
piotr.kupczyk@id.ethz.ch
committed
}
getState() {
return this.getStateFn()
piotr.kupczyk@id.ethz.ch
committed
}
setState(state) {
piotr.kupczyk@id.ethz.ch
committed
return new Promise(resolve => {
this.setStateFn(state, () => {