console: shouldComponentUpdate and componentWilLReceiveProps tweaks
This commit is contained in:
parent
227b562ad9
commit
40704b4b00
1 changed files with 17 additions and 18 deletions
|
@ -18,32 +18,31 @@ class Console extends React.Component {
|
||||||
this.children = [];
|
this.children = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
shouldComponentUpdate(nextProps) {
|
componentWillReceiveProps(nextProps) {
|
||||||
// clear children if paused, but only update when new consoleEvent happens
|
if (nextProps.isPlaying && !this.props.isPlaying) {
|
||||||
if (!nextProps.isPlaying) {
|
|
||||||
this.children = [];
|
this.children = [];
|
||||||
}
|
} else if (nextProps.consoleEvent !== this.props.consoleEvent) {
|
||||||
return nextProps.consoleEvent !== this.props.consoleEvent;
|
const args = nextProps.consoleEvent.arguments;
|
||||||
}
|
const method = nextProps.consoleEvent.method;
|
||||||
|
|
||||||
render() {
|
|
||||||
const args = this.props.consoleEvent.arguments;
|
|
||||||
const method = this.props.consoleEvent.method;
|
|
||||||
|
|
||||||
const nextChild = (
|
const nextChild = (
|
||||||
<div key={this.children.length} className={method}>
|
<div key={this.children.length} className={method}>
|
||||||
{Object.keys(args).map((key) => <span key={`${this.children.length}-${key}`}>{args[key]}</span>)}
|
{Object.keys(args).map((key) => <span key={`${this.children.length}-${key}`}>{args[key]}</span>)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
this.children.push(nextChild);
|
this.children.push(nextChild);
|
||||||
|
|
||||||
if (this.children.length > consoleMax) {
|
|
||||||
this.children = this.children.slice(0, 1);
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
shouldComponentUpdate(nextProps) {
|
||||||
|
return (nextProps.consoleEvent !== this.props.consoleEvent) || (nextProps.isPlaying && !this.props.isPlaying);
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
const childrenToDisplay = this.children.slice(-consoleMax);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div ref="console" className="preview-console">
|
<div ref="console" className="preview-console">
|
||||||
{this.children}
|
{childrenToDisplay}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue