diff --git a/lib/views/commit-view.js b/lib/views/commit-view.js index c2cb3394d3..ea4559cbdf 100644 --- a/lib/views/commit-view.js +++ b/lib/views/commit-view.js @@ -15,15 +15,7 @@ const TOOLTIP_DELAY = 200; // CustomEvent is a DOM primitive, which v8 can't access // so we're essentially lazy loading to keep snapshotting from breaking. -const getFakeKeyDownEvent = function(keyCode) { - class FakeKeyDownEvent extends CustomEvent { - constructor(kCode) { - super('keydown'); - this.keyCode = kCode; - } - } - return new FakeKeyDownEvent(keyCode); -}; +let FakeKeyDownEvent; export default class CommitView extends React.Component { static focus = { @@ -83,7 +75,16 @@ export default class CommitView extends React.Component { return; } - const fakeEvent = getFakeKeyDownEvent(keyCode); + if (!FakeKeyDownEvent) { + FakeKeyDownEvent = class extends CustomEvent { + constructor(kCode) { + super('keydown'); + this.keyCode = kCode; + } + }; + } + + const fakeEvent = new FakeKeyDownEvent(keyCode); this.refCoAuthorSelect.handleKeyDown(fakeEvent); if (!fakeEvent.defaultPrevented) { @@ -205,13 +206,14 @@ export default class CommitView extends React.Component { className="github-CommitView-button github-CommitView-commit btn btn-primary" onClick={this.commit} disabled={!this.commitIsEnabled()}>{this.commitButtonText()} - this.refCommitButton} - className="github-CommitView-button-tooltip" - title={`${modKey}-enter to commit`} - showDelay={TOOLTIP_DELAY} - /> + {this.commitIsEnabled() && + this.refCommitButton} + className="github-CommitView-button-tooltip" + title={`${modKey}-enter to commit`} + showDelay={TOOLTIP_DELAY} + />}
{this.getRemainingCharacters()}