Skip to content
This repository was archived by the owner on Jan 14, 2022. It is now read-only.

Commit 23a7e98

Browse files
committed
fixed flickering when change file in multi file snippet
1 parent 7faffba commit 23a7e98

File tree

3 files changed

+9
-17
lines changed

3 files changed

+9
-17
lines changed

browser/render/components/code-editor/index.jsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ export default class CodeEditor extends React.Component {
175175

176176
const wrapperElement = this.editor.getWrapperElement()
177177
wrapperElement.style.fontFamily = fontFamily
178+
wrapperElement.style.flex = '1'
178179
if (this.props.maxHeight) {
179180
const wrapperElement = this.editor.getWrapperElement()
180181
wrapperElement.querySelector(
@@ -229,6 +230,7 @@ export default class CodeEditor extends React.Component {
229230

230231
const wrapperElement = this.editor.getWrapperElement()
231232
wrapperElement.style.fontFamily = fontFamily
233+
wrapperElement.style.flex = '1'
232234
if (this.props.maxHeight) {
233235
const wrapperElement = this.editor.getWrapperElement()
234236
wrapperElement.querySelector(

browser/render/layouts/original/snippet-item-multi-files/index.jsx

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,7 @@ export default class SnippetItemMultiFiles extends React.Component {
184184
newSnippet.files = editingFiles
185185
store.updateSnippet(newSnippet)
186186
}
187-
this.setState({ isEditing: false }, () => {
188-
this.resetSnippetHeight()
189-
})
187+
this.setState({ isEditing: false })
190188
editor.setOption('readOnly', true)
191189
}
192190

@@ -211,7 +209,6 @@ export default class SnippetItemMultiFiles extends React.Component {
211209
},
212210
() => {
213211
editor.setOption('readOnly', true)
214-
this.resetSnippetHeight()
215212
}
216213
)
217214
}
@@ -439,17 +436,6 @@ export default class SnippetItemMultiFiles extends React.Component {
439436
}
440437
}
441438

442-
resetSnippetHeight () {
443-
// reset height
444-
const { editor } = this.refs
445-
this.refs.fileList.style.maxHeight = '0px'
446-
editor.applyEditorStyle()
447-
setTimeout(() => {
448-
this.refs.fileList.style.maxHeight = '300px'
449-
editor.applyEditorStyle()
450-
})
451-
}
452-
453439
handleNewFileFocus () {
454440
const { editingFiles } = this.state
455441
const { editor } = this.refs
@@ -470,8 +456,12 @@ export default class SnippetItemMultiFiles extends React.Component {
470456

471457
handleChangeFileClick (index, useFileAtIndex, callback) {
472458
const { snippet } = this.props
473-
const { editingFiles, isEditing } = this.state
459+
const { editingFiles, isEditing, selectedFile } = this.state
474460
const { editor } = this.refs
461+
// don't do anything if the current file is clicked twice!
462+
if (selectedFile === index) {
463+
return
464+
}
475465
// set the new selected file index
476466
this.setState({ selectedFile: index }, () => {
477467
// if the snippet is in the editing mode, interact with the state instead
@@ -496,7 +486,6 @@ export default class SnippetItemMultiFiles extends React.Component {
496486
editor.setOption('mode', 'null')
497487
}
498488
editor.setValue(file.value)
499-
this.resetSnippetHeight()
500489
if (callback && typeof callback === 'function') {
501490
callback()
502491
}

browser/render/layouts/original/snippet-item-multi-files/snippet-item-multi-file.sass

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
.code
8686
max-height: 300px
8787
width: 80%
88+
display: flex
8889
.file-list
8990
width: 20%
9091
max-height: 300px

0 commit comments

Comments
 (0)