diff options
Diffstat (limited to 'src/sidebar.ts')
| -rw-r--r-- | src/sidebar.ts | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/src/sidebar.ts b/src/sidebar.ts index dbf9cbe..1af0cf5 100644 --- a/src/sidebar.ts +++ b/src/sidebar.ts @@ -1,32 +1,22 @@ import { SIDEBAR } from './gmail_css_class'; import key_codes from './key_codes'; +import multi_key_command from './multi_key_command'; export default function() { var key_buffer: number[] = []; var sidebar: HTMLElement = document.getElementsByClassName(SIDEBAR)[0] as HTMLElement; - document.addEventListener('keydown', function(e) { - if (e.keyCode === key_codes.SLASH) { - key_buffer.push(e.keyCode); - } - if (e.keyCode === key_codes.M) { - key_buffer.push(e.keyCode); - } - }); - - document.addEventListener('keyup', function(e) { - if (key_buffer.length >= 2) { - if (key_buffer[0] === key_codes.SLASH - && key_buffer[1] === key_codes.M) { - if (sidebar.offsetParent === null) { - sidebar.style.display = 'block'; - } - else { - sidebar.style.display = 'none'; - } + multi_key_command( + document, + [key_codes.SLASH, key_codes.M], + function() { + if (sidebar.offsetParent === null) { + sidebar.style.display = 'block'; + } + else { + sidebar.style.display = 'none'; } - key_buffer = []; } - }); + ); }; |
