From: Scott Worley Date: Thu, 27 Jan 2022 08:30:22 +0000 (-0800) Subject: Escape to abort a task edit X-Git-Url: http://git.scottworley.com/vopamoi/commitdiff_plain/ad72cd51833c7202a3af3bd403c06616e4050b88?ds=inline;hp=a59fbe41a148be79ea3623cd9a07cecf11b67d6c Escape to abort a task edit --- diff --git a/vopamoi.ts b/vopamoi.ts index fdc4723..7bdf4b8 100644 --- a/vopamoi.ts +++ b/vopamoi.ts @@ -178,6 +178,11 @@ function UI() { } const ui = UI(); +enum CommitOrAbort { + Commit, + Abort, +} + function BrowserUI() { var currentViewState = "todo"; var taskFocusedBeforeJumpingToInput: HTMLElement | null = null; @@ -214,7 +219,7 @@ function BrowserUI() { 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")!; @@ -223,7 +228,7 @@ function BrowserUI() { 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); @@ -350,6 +355,7 @@ function handleKey(event: any) { 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) {