X-Git-Url: http://git.scottworley.com/vopamoi/blobdiff_plain/997d8d55032aba314fa674c19ce25463af30c972..9db534f6ab9420b8fd5836e791dbe09abb0a92d8:/vopamoi.ts diff --git a/vopamoi.ts b/vopamoi.ts index 5f759d0..f550fa1 100644 --- a/vopamoi.ts +++ b/vopamoi.ts @@ -207,6 +207,7 @@ function Log(prefix: string = "vp-") { }, replay: function () { + document.getElementById("tasks")!.style.display = "none"; while (true) { const entry = window.localStorage.getItem(`${prefix}${next_log_index}`); if (entry === null) { @@ -215,6 +216,7 @@ function Log(prefix: string = "vp-") { this.apply(entry); next_log_index++; } + document.getElementById("tasks")!.style.display = ""; }, }; } @@ -378,8 +380,9 @@ function BrowserUI() { return target as HTMLElement; }, - firstVisibleTask: function () { - for (const task of document.getElementsByClassName("task")) { + firstVisibleTask: function (root: Element | null = null) { + if (root === null) root = document.body; + for (const task of root.getElementsByClassName("task")) { const state = task.getAttribute("data-state"); if ( task instanceof HTMLElement && @@ -447,7 +450,9 @@ function BrowserUI() { }, moveCursorRight: function () { - (this.currentTask()?.getElementsByClassName("task")[0] as HTMLElement)?.focus(); + const active = this.currentTask(); + if (!active) return false; + (this.firstVisibleTask(active) as HTMLElement | null)?.focus(); }, moveCursorVertically: function (offset: number): boolean {