1
0
mirror of https://github.com/chinchang/web-maker.git synced 2025-05-06 02:25:19 +02:00

ContentWraps: Move console fnprops to constrcutor to avoid new fn creation on render

This commit is contained in:
Kushagra Gour 2018-11-05 14:51:46 +05:30
parent 8e545529b6
commit 86c66bd344
2 changed files with 27 additions and 13 deletions

View File

@ -37,6 +37,15 @@ export default class ContentWrap extends Component {
window.previewException = this.previewException.bind(this); window.previewException = this.previewException.bind(this);
// `clearConsole` is on window because it gets called from inside iframe also. // `clearConsole` is on window because it gets called from inside iframe also.
window.clearConsole = this.clearConsole.bind(this); window.clearConsole = this.clearConsole.bind(this);
this.consoleHeaderDblClickHandler = this.consoleHeaderDblClickHandler.bind(
this
);
this.clearConsoleBtnClickHandler = this.clearConsoleBtnClickHandler.bind(
this
);
this.toggleConsole = this.toggleConsole.bind(this);
this.evalConsoleExpr = this.evalConsoleExpr.bind(this);
} }
shouldComponentUpdate(nextProps, nextState) { shouldComponentUpdate(nextProps, nextState) {
return ( return (
@ -840,12 +849,10 @@ export default class ContentWrap extends Component {
<Console <Console
logs={this.state.logs} logs={this.state.logs}
isConsoleOpen={this.state.isConsoleOpen} isConsoleOpen={this.state.isConsoleOpen}
onConsoleHeaderDblClick={this.consoleHeaderDblClickHandler.bind( onConsoleHeaderDblClick={this.consoleHeaderDblClickHandler}
this onClearConsoleBtnClick={this.clearConsoleBtnClickHandler}
)} toggleConsole={this.toggleConsole}
onClearConsoleBtnClick={this.clearConsoleBtnClickHandler.bind(this)} onEvalInputKeyup={this.evalConsoleExpr}
toggleConsole={this.toggleConsole.bind(this)}
onEvalInputKeyup={this.evalConsoleExpr.bind(this)}
/> />
<CssSettingsModal <CssSettingsModal
show={this.state.isCssSettingsModalOpen} show={this.state.isCssSettingsModalOpen}

View File

@ -22,7 +22,7 @@ import { commandPaletteService } from '../commandPaletteService';
const minCodeWrapSize = 33; const minCodeWrapSize = 33;
/* global htmlCodeEl, jsCodeEl, cssCodeEl, logCountEl /* global htmlCodeEl
*/ */
export default class ContentWrapFiles extends Component { export default class ContentWrapFiles extends Component {
constructor(props) { constructor(props) {
@ -46,6 +46,15 @@ export default class ContentWrapFiles extends Component {
window.previewException = this.previewException.bind(this); window.previewException = this.previewException.bind(this);
// `clearConsole` is on window because it gets called from inside iframe also. // `clearConsole` is on window because it gets called from inside iframe also.
window.clearConsole = this.clearConsole.bind(this); window.clearConsole = this.clearConsole.bind(this);
this.consoleHeaderDblClickHandler = this.consoleHeaderDblClickHandler.bind(
this
);
this.clearConsoleBtnClickHandler = this.clearConsoleBtnClickHandler.bind(
this
);
this.toggleConsole = this.toggleConsole.bind(this);
this.evalConsoleExpr = this.evalConsoleExpr.bind(this);
} }
shouldComponentUpdate(nextProps, nextState) { shouldComponentUpdate(nextProps, nextState) {
return ( return (
@ -641,12 +650,10 @@ export default class ContentWrapFiles extends Component {
<Console <Console
logs={this.state.logs} logs={this.state.logs}
isConsoleOpen={this.state.isConsoleOpen} isConsoleOpen={this.state.isConsoleOpen}
onConsoleHeaderDblClick={this.consoleHeaderDblClickHandler.bind( onConsoleHeaderDblClick={this.consoleHeaderDblClickHandler}
this onClearConsoleBtnClick={this.clearConsoleBtnClickHandler}
)} toggleConsole={this.toggleConsole}
onClearConsoleBtnClick={this.clearConsoleBtnClickHandler.bind(this)} onEvalInputKeyup={this.evalConsoleExpr}
toggleConsole={this.toggleConsole.bind(this)}
onEvalInputKeyup={this.evalConsoleExpr.bind(this)}
/> />
</div> </div>
</SplitPane> </SplitPane>