diff options
| author | Oni-Men <sensyaheis@gmail.com> | 2020-02-26 17:22:43 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-26 17:22:43 +0900 |
| commit | 569be15705b570d5295e2dc9a1af4b2e6a0a725f (patch) | |
| tree | b958dc53f4fc6ce3168b851c2370a7bf284cb60d /src/client/scripts | |
| parent | リアクション絵文字設定をいい感じに (#6074) (diff) | |
| download | sharkey-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.ts | 11 |
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(); |