2019-02-05 14:16:51 +01:00
|
|
|
import { Component } from "../core/component";
|
2019-02-04 21:09:17 +01:00
|
|
|
import { Env } from "../env";
|
|
|
|
|
|
2019-02-05 14:16:51 +01:00
|
|
|
export class Widget<Props, State> extends Component<Env, Props, State> {}
|
2019-02-05 08:56:33 +01:00
|
|
|
|
|
|
|
|
// TODO: move this to PureComponent in core
|
|
|
|
|
export class PureWidget<Props, State> extends Widget<Props, State> {
|
|
|
|
|
shouldUpdate(nextProps: Props): boolean {
|
|
|
|
|
for (let k in nextProps) {
|
|
|
|
|
if (nextProps[k] !== this.props[k]) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
async updateState(nextState: Partial<State>) {
|
|
|
|
|
for (let k in nextState) {
|
|
|
|
|
if (nextState[k] !== this.state[k]) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return super.updateState(nextState);
|
|
|
|
|
}
|
|
|
|
|
}
|