fix: prevent unnecessary re-renders

The editor should handle its own rendering.  By including a key that
changes as the users changes tabs forces the editor to re-render.  This
gets triggered as the user types, resetting the cursor to the start of
the editor.

Now the key only changes if the theme changes.
This commit is contained in:
Oliver Eyton-Williams
2020-05-28 11:10:07 +02:00
committed by Mrugesh Mohapatra
parent 4de5c5fde3
commit b0f18cacc7

View File

@ -303,6 +303,7 @@ class Editor extends Component {
// TODO: tabs should be dynamically created from the challengeFiles
// TODO: a11y fixes.
// TODO: is the key necessary? Try switching themes without it.
return (
<Suspense fallback={<Loader timeout={600} />}>
<span className='notranslate'>
@ -335,7 +336,7 @@ class Editor extends Component {
<MonacoEditor
editorDidMount={this.editorDidMount}
editorWillMount={this.editorWillMount}
key={`${editorTheme}-${this.currentFileKey}`}
key={`${editorTheme}`}
onChange={this.onChange}
options={this.options}
theme={editorTheme}