}
const ui = UI();
+enum CommitOrAbort {
+ Commit,
+ Abort,
+}
+
function BrowserUI() {
var currentViewState = "todo";
var taskFocusedBeforeJumpingToInput: HTMLElement | null = null;
event.preventDefault();
},
- completeEdit: function (event: Event) {
+ completeEdit: function (event: Event, resolution: CommitOrAbort = CommitOrAbort.Commit) {
const input = event.target as HTMLInputElement;
const task = input.parentElement!;
const oldDescription = task.getAttribute("data-description")!;
task.removeChild(task.children[0]);
task.removeAttribute("data-description");
task.focus();
- if (newDescription === oldDescription) {
+ if (newDescription === oldDescription || resolution === CommitOrAbort.Abort) {
task.textContent = oldDescription;
} else {
ui.edit(task.getAttribute("data-created")!, newDescription, oldDescription);
if (event.key == "Escape") return browserUI.returnFocusAfterInput();
} else {
if (event.key == "Enter") return browserUI.completeEdit(event);
+ if (event.key == "Escape") return browserUI.completeEdit(event, CommitOrAbort.Abort);
}
} else {
if (inputState === InputState.Command) {