var target = document.activeElement;
if (!target) return null;
if (target.classList.contains("tag")) target = target.parentElement!;
+ if (!target.classList.contains("task")) return null;
return target as HTMLElement;
},
},
moveCursorVertically: function (offset: number): boolean {
- const active = this.currentTask();
+ let active = this.currentTask();
+ if (!active) {
+ this.firstVisibleTask()?.focus();
+ active = this.currentTask();
+ }
if (!active) return false;
const dest = this.visibleTaskAtOffset(active, offset);
if (dest !== active && dest instanceof HTMLElement) {
resetTagView: function () {
currentTagView = null;
+ this.setTitle();
const taskList = document.getElementById("tasks")!;
for (const task of Array.from(document.getElementsByClassName("task"))) {
task.classList.remove("hide");
}
currentTagView = tag;
+ this.setTitle();
+ },
+
+ setTitle: function () {
+ document.title = "Vopamoi: " + currentViewState + (currentTagView ? ": " + currentTagView : "");
},
setView: function (state: string) {
sheet.removeRule(2);
sheet.removeRule(2);
currentViewState = state;
+ this.setTitle();
if (this.currentTask()?.getAttribute("data-state") !== state) {
this.firstVisibleTask()?.focus();
}
function browserInit() {
log.replay();
+ browserUI.setTitle();
browserUI.firstVisibleTask()?.focus();
document.body.addEventListener("keydown", handleKey, { capture: false });
}