From ad72cd51833c7202a3af3bd403c06616e4050b88 Mon Sep 17 00:00:00 2001 From: Scott Worley Date: Thu, 27 Jan 2022 00:30:22 -0800 Subject: [PATCH] Escape to abort a task edit --- vopamoi.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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) { -- 2.44.1