fix: log/tasks rendering
This commit is contained in:
+24
-2
@@ -103,6 +103,8 @@ let settingsState = {
|
||||
logsLoaded: false,
|
||||
tasksLoaded: false,
|
||||
logsPollTimer: null,
|
||||
lastHistoryRenderKey: "",
|
||||
lastTasksRenderKey: "",
|
||||
showThumbnails: false,
|
||||
preferredStartupPathLeft: null,
|
||||
preferredStartupPathRight: null,
|
||||
@@ -3804,12 +3806,18 @@ function formatTaskLine(task) {
|
||||
|
||||
function renderHistoryItems(items) {
|
||||
const elements = settingsElements();
|
||||
const renderKey = JSON.stringify(Array.isArray(items) ? items : []);
|
||||
if (settingsState.lastHistoryRenderKey === renderKey) {
|
||||
return;
|
||||
}
|
||||
const scrollTop = elements.logsList.scrollTop;
|
||||
elements.logsList.innerHTML = "";
|
||||
if (!Array.isArray(items) || items.length === 0) {
|
||||
const empty = document.createElement("div");
|
||||
empty.className = "popup-meta";
|
||||
empty.textContent = "No history entries yet.";
|
||||
elements.logsList.append(empty);
|
||||
settingsState.lastHistoryRenderKey = renderKey;
|
||||
return;
|
||||
}
|
||||
for (const item of items) {
|
||||
@@ -3834,16 +3842,24 @@ function renderHistoryItems(items) {
|
||||
}
|
||||
elements.logsList.append(row);
|
||||
}
|
||||
settingsState.lastHistoryRenderKey = renderKey;
|
||||
elements.logsList.scrollTop = scrollTop;
|
||||
}
|
||||
|
||||
function renderTaskItems(items) {
|
||||
const elements = settingsElements();
|
||||
const renderKey = JSON.stringify(Array.isArray(items) ? items : []);
|
||||
if (settingsState.lastTasksRenderKey === renderKey) {
|
||||
return;
|
||||
}
|
||||
const scrollTop = elements.tasksList.scrollTop;
|
||||
elements.tasksList.innerHTML = "";
|
||||
if (!Array.isArray(items) || items.length === 0) {
|
||||
const empty = document.createElement("div");
|
||||
empty.className = "popup-meta";
|
||||
empty.textContent = "No tasks yet.";
|
||||
elements.tasksList.append(empty);
|
||||
settingsState.lastTasksRenderKey = renderKey;
|
||||
return;
|
||||
}
|
||||
for (const task of items) {
|
||||
@@ -3868,6 +3884,8 @@ function renderTaskItems(items) {
|
||||
}
|
||||
elements.tasksList.append(row);
|
||||
}
|
||||
settingsState.lastTasksRenderKey = renderKey;
|
||||
elements.tasksList.scrollTop = scrollTop;
|
||||
}
|
||||
|
||||
async function loadHistoryForSettings() {
|
||||
@@ -3885,8 +3903,12 @@ async function loadTasksForSettings() {
|
||||
async function loadLogsAndTasksForSettings() {
|
||||
const elements = settingsElements();
|
||||
elements.logsError.textContent = "";
|
||||
elements.tasksList.innerHTML = '<div class="popup-meta">Loading...</div>';
|
||||
elements.logsList.innerHTML = '<div class="popup-meta">Loading...</div>';
|
||||
if (!settingsState.tasksLoaded) {
|
||||
elements.tasksList.innerHTML = '<div class="popup-meta">Loading...</div>';
|
||||
}
|
||||
if (!settingsState.logsLoaded) {
|
||||
elements.logsList.innerHTML = '<div class="popup-meta">Loading...</div>';
|
||||
}
|
||||
try {
|
||||
await Promise.all([loadTasksForSettings(), loadHistoryForSettings()]);
|
||||
} catch (err) {
|
||||
|
||||
Reference in New Issue
Block a user