diff options
-rw-r--r-- | readme.md | 1 | ||||
-rw-r--r-- | source/features/esc-to-cancel.tsx | 25 | ||||
-rw-r--r-- | source/refined-github.ts | 1 |
3 files changed, 27 insertions, 0 deletions
@@ -182,6 +182,7 @@ Thanks for contributing! 🦋🙌 - [](# "remove-label-faster") [Adds one-click buttons to remove labels in conversations.](https://user-images.githubusercontent.com/36174850/89980178-0bc80480-dc7a-11ea-8ded-9e25f5f13d1a.gif) - [](# "clean-conversation-headers") [Removes duplicate information in conversation headers.](https://user-images.githubusercontent.com/44045911/89736767-686ec800-da9e-11ea-81c3-252e9813140b.png) - [](# "dim-bots") [Dims commits and PRs by bots to reduce noise.](https://user-images.githubusercontent.com/1402241/65263190-44c52b00-db36-11e9-9b33-d275d3c8479d.gif) +- [](# "esc-to-cancel") [Adds a shortcut to cancel editing a conversation title: <kbd>esc</kbd>.](https://user-images.githubusercontent.com/35100156/98303086-d81d2200-1fbd-11eb-8529-70d48d889bcf.gif) <!-- Refer to style guide above. Keep this message between sections. --> diff --git a/source/features/esc-to-cancel.tsx b/source/features/esc-to-cancel.tsx new file mode 100644 index 00000000..41ea2ba1 --- /dev/null +++ b/source/features/esc-to-cancel.tsx @@ -0,0 +1,25 @@ +import select from 'select-dom'; +import delegate from 'delegate-it'; + +import features from '.'; + +function handleEscPress(event: delegate.Event<KeyboardEvent>): void { + if (event.key === 'Escape') { + select('.js-cancel-issue-edit')!.click(); + + event.stopImmediatePropagation(); + event.preventDefault(); + } +} + +function init(): void { + delegate(document, '#issue_title', 'keydown', handleEscPress); +} + +void features.add(__filebasename, { + shortcuts: { + esc: 'Cancel editing a conversation title' + }, + awaitDomReady: false, + init +}); diff --git a/source/refined-github.ts b/source/refined-github.ts index b50d8c44..f9f53820 100644 --- a/source/refined-github.ts +++ b/source/refined-github.ts @@ -202,6 +202,7 @@ import './features/git-checkout-pr'; import './features/unfinished-comments'; import './features/single-diff-column-selection'; import './features/jump-to-change-requested-comment'; +import './features/esc-to-cancel'; // Add global for easier debugging (window as any).select = select; |