do not rerender logs on async calls

This commit is contained in:
Dmitry Vasilev
2022-11-29 05:43:34 +08:00
parent 75088bc3f5
commit 117f41e2b8
2 changed files with 38 additions and 40 deletions

View File

@@ -40,12 +40,18 @@ export class Logs {
}) })
} }
render_logs(prev_logs, logs) { rerender_logs(logs) {
if(prev_logs?.logs != logs.logs) {
this.el.innerHTML = '' this.el.innerHTML = ''
for(let i = 0; i < logs.logs.length; i++) { this.render_logs(null, logs)
}
render_logs(prev_logs, logs) {
for(
let i = prev_logs == null ? 0 : prev_logs.logs.length ;
i < logs.logs.length;
i++
)
{
const log = logs.logs[i] const log = logs.logs[i]
this.el.appendChild( this.el.appendChild(
el('div', el('div',
@@ -74,8 +80,6 @@ export class Logs {
) )
} }
}
if(prev_logs?.log_position != logs.log_position) { if(prev_logs?.log_position != logs.log_position) {
if(prev_logs?.logs == logs.logs && prev_logs?.log_position != null) { if(prev_logs?.logs == logs.logs && prev_logs?.log_position != null) {
this.el.children[prev_logs.log_position].classList.remove('active') this.el.children[prev_logs.log_position].classList.remove('active')

10
src/effects.js vendored
View File

@@ -182,18 +182,14 @@ export const render_common_side_effects = (prev, next, command, ui) => {
} else { } else {
if( if(prev.calltree_changed_token != next.calltree_changed_token) {
// TODO refactor this condition
prev.current_calltree_node == null
||
prev.calltree_changed_token != next.calltree_changed_token
) {
// Rerender entire calltree // Rerender entire calltree
ui.render_debugger(next) ui.render_debugger(next)
ui.eval.clear_value_or_error() ui.eval.clear_value_or_error()
ui.editor.for_each_session(f => clear_coloring(ui, f)) ui.editor.for_each_session(f => clear_coloring(ui, f))
render_coloring(ui, next) render_coloring(ui, next)
ui.editor.unembed_value_explorer() ui.editor.unembed_value_explorer()
ui.logs.rerender_logs(next.logs)
} else { } else {
if(get_async_calls(prev) == null && get_async_calls(next) != null) { if(get_async_calls(prev) == null && get_async_calls(next) != null) {
@@ -225,9 +221,7 @@ export const render_common_side_effects = (prev, next, command, ui) => {
if(prev.calltree_node_by_loc != next.calltree_node_by_loc) { if(prev.calltree_node_by_loc != next.calltree_node_by_loc) {
render_coloring(ui, next) render_coloring(ui, next)
} }
}
if(prev.logs != next.logs) {
ui.logs.render_logs(prev.logs, next.logs) ui.logs.render_logs(prev.logs, next.logs)
} }
} }