This commit is contained in:
Dmitry Vasilev
2023-01-17 11:14:10 +08:00
parent f3aa03d214
commit e024363ba3
2 changed files with 36 additions and 31 deletions

View File

@@ -253,26 +253,27 @@ export class UI {
reload_run_window(get_state())
}
render_debugger_loading(state) {
this.debugger_container.style = ''
this.problems_container.style = 'display: none'
this.debugger_loaded.style = 'display: none'
this.debugger_loading.style = ''
this.debugger_loading.innerText =
state.loading_external_imports_state != null
? 'Loading external modules...'
: 'Waiting...'
}
render_debugger(state) {
this.debugger_container.style = ''
this.problems_container.style = 'display: none'
if(
state.loading_external_imports_state != null
||
state.eval_modules_state != null
) {
this.debugger_loaded.style = 'display: none'
this.debugger_loading.innerText =
state.loading_external_imports_state != null
? 'Loading external modules...'
: 'Waiting...'
this.debugger_loading.style = ''
} else {
this.debugger_loading.style = 'display: none'
this.debugger_loaded.style = ''
this.calltree.render_calltree(state)
this.logs.render_logs(null, state.logs)
}
this.debugger_loading.style = 'display: none'
this.debugger_loaded.style = ''
this.calltree.render_calltree(state)
this.logs.render_logs(null, state.logs)
}
render_problems(problems) {

32
src/effects.js vendored
View File

@@ -194,15 +194,9 @@ export const render_common_side_effects = (prev, next, command, ui) => {
render_parse_result(ui, next)
}
if(
!next.parse_result.ok
||
next.loading_external_imports_state != null
||
next.eval_modules_state != null
) {
if(!next.parse_result.ok) {
ui.render_debugger(next)
ui.calltree.clear_calltree()
ui.editor.for_each_session((file, session) => clear_coloring(ui, file))
} else {
@@ -212,12 +206,22 @@ export const render_common_side_effects = (prev, next, command, ui) => {
||
prev.calltree_changed_token != next.calltree_changed_token
) {
// Rerender entire calltree
ui.render_debugger(next)
ui.eval.clear_value_or_error()
ui.editor.for_each_session(f => clear_coloring(ui, f))
render_coloring(ui, next)
ui.logs.rerender_logs(next.logs)
const is_loading =
next.loading_external_imports_state != null
||
next.eval_modules_state != null
if(is_loading) {
ui.calltree.clear_calltree()
ui.editor.for_each_session((file, session) => clear_coloring(ui, file))
ui.render_debugger_loading(next)
} else {
// Rerender entire calltree
ui.render_debugger(next)
ui.eval.clear_value_or_error()
ui.editor.for_each_session(f => clear_coloring(ui, f))
render_coloring(ui, next)
ui.logs.rerender_logs(next.logs)
}
} else {
if(get_deferred_calls(prev) == null && get_deferred_calls(next) != null) {