task.setAttribute("class", "task");
task.setAttribute("tabindex", "0");
task.setAttribute("data-created", timestamp);
+ task.setAttribute("data-state", "todo");
document.getElementById("tasks")!.appendChild(task);
return task;
},
return parseFloat(task.getAttribute("data-created")!);
},
- getState: function (task: Element): string {
- return task.getAttribute("data-state") ?? "todo";
- },
-
getTask: function (createTimestamp: string) {
for (const task of document.getElementsByClassName("task")) {
if (task.getAttribute("data-created") === createTimestamp) {
setState: function (newState: string) {
const task = document.activeElement;
if (!task) return;
- const oldState = Model.getState(task);
+ const oldState = task.getAttribute("data-state");
if (newState === oldState) return;
const createTimestamp = task.getAttribute("data-created")!;
this.moveCursor(1) || this.moveCursor(-1);
enum InputState {
Command,
+ View,
}
var inputState = InputState.Command;
if (event.key == "X") return BrowserUI.setState("deleted");
if (event.key == "u") return BrowserUI.undo();
if (event.key == "e") return BrowserUI.beginEdit(event);
+ if (event.key == "v") return (inputState = InputState.View);
+ } else if (inputState === InputState.View) {
+ return (inputState = InputState.Command);
}
}
}