jaywcjlove / react-hotkeys

React component to listen to keydown and keyup keyboard events, defining and dispatching keyboard shortcuts.
https://jaywcjlove.github.io/react-hotkeys/
415 stars 22 forks source link

Question For Modifier Keys #95

Open leopold-zw opened 2 years ago

leopold-zw commented 2 years ago

I tried to use keyName='*' to listen to every key, then I got this issue:

When I pressed 'shift' + 'command' at the same time, onKeyDown was trigged for twice, which is right. Then I released 'shift' and 'command' respectively, the question is that 'onKeyUp' was only trigged once.But I need to know both status of them.And because of the issue#27 from the repository hotkeys, I cann't fix this by using keyName='shift'.

I found the reason:

handleKeyUpEvent(e: KeyboardEvent) {
  if (!this.isKeyDown) return;
  this.isKeyDown = false;
  if (this.props.keyName && this.props.keyName.indexOf(this.handle.shortcut) < 0) return;
  this.onKeyUp(e, this.handle);
  this.handle = {} as HotkeysEvent;
}

this.isKeyDown was set to false so that onKeyUp will not be trigged for the second time.

That's all I know. Unfortunately, I have no idea to fix this.