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) {
if(prev_logs?.logs != logs.logs) {
rerender_logs(logs) {
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]
this.el.appendChild(
el('div',
@@ -74,8 +80,6 @@ export class Logs {
)
}
}
if(prev_logs?.log_position != logs.log_position) {
if(prev_logs?.logs == logs.logs && prev_logs?.log_position != null) {
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 {
if(
// TODO refactor this condition
prev.current_calltree_node == null
||
prev.calltree_changed_token != next.calltree_changed_token
) {
if(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.editor.unembed_value_explorer()
ui.logs.rerender_logs(next.logs)
} else {
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) {
render_coloring(ui, next)
}
}
if(prev.logs != next.logs) {
ui.logs.render_logs(prev.logs, next.logs)
}
}