aboutsummaryrefslogtreecommitdiffstats
path: root/src/sidebar.ts
diff options
context:
space:
mode:
authorTeddy Wing2019-05-01 18:22:53 +0200
committerTeddy Wing2019-05-01 18:22:53 +0200
commite65c92e98a2c98e57814ac4bec148cbbf169616d (patch)
tree615af84fb12474d554045c3331b1e86f5cb50ae0 /src/sidebar.ts
parent75221eab7a3188a92d221b2d0be7a9d082fca31a (diff)
downloadmuttagen-e65c92e98a2c98e57814ac4bec148cbbf169616d.tar.bz2
sidebar.ts: Extract multi-key shortcut command code
Make the multi-key command generic so that it works with other commands, not just `\m`. Use the array equality method from Abhi (https://stackoverflow.com/users/2968762/abhi) on Stack Overflow: https://stackoverflow.com/questions/7837456/how-to-compare-arrays-in-javascript/19746771#19746771
Diffstat (limited to 'src/sidebar.ts')
-rw-r--r--src/sidebar.ts32
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 = [];
}
- });
+ );
};