summaryrefslogtreecommitdiff
path: root/src/client/scripts
diff options
context:
space:
mode:
authorOni-Men <sensyaheis@gmail.com>2020-02-26 17:22:43 +0900
committerGitHub <noreply@github.com>2020-02-26 17:22:43 +0900
commit569be15705b570d5295e2dc9a1af4b2e6a0a725f (patch)
treeb958dc53f4fc6ce3168b851c2370a7bf284cb60d /src/client/scripts
parentリアクション絵文字設定をいい感じに (#6074) (diff)
downloadsharkey-569be15705b570d5295e2dc9a1af4b2e6a0a725f.tar.gz
sharkey-569be15705b570d5295e2dc9a1af4b2e6a0a725f.tar.bz2
sharkey-569be15705b570d5295e2dc9a1af4b2e6a0a725f.zip
同じホットキーが連続で発動しないように (#6082)
* add cooldown to hotkey * remove blank * use repeat flag * format * Add Repeatable option to Hotkey * Boolean型のみに * console.log消すの忘れてた
Diffstat (limited to 'src/client/scripts')
-rw-r--r--src/client/scripts/hotkey.ts11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/client/scripts/hotkey.ts b/src/client/scripts/hotkey.ts
index ec627ab15b..672dbedde1 100644
--- a/src/client/scripts/hotkey.ts
+++ b/src/client/scripts/hotkey.ts
@@ -12,14 +12,22 @@ type action = {
patterns: pattern[];
callback: Function;
+
+ allowRepeat: boolean;
};
const getKeyMap = keymap => Object.entries(keymap).map(([patterns, callback]): action => {
const result = {
patterns: [],
- callback: callback
+ callback: callback,
+ allowRepeat: true
} as action;
+ if (patterns.match(/^\(.*\)$/) !== null) {
+ result.allowRepeat = false;
+ patterns = patterns.slice(1, -1);
+ }
+
result.patterns = patterns.split('|').map(part => {
const pattern = {
which: [],
@@ -77,6 +85,7 @@ export default {
const matched = match(e, action.patterns);
if (matched) {
+ if (!action.allowRepeat && e.repeat) return;
if (el._hotkey_global && match(e, targetReservedKeys)) return;
e.preventDefault();