UNPKG

@platform/react

Version:

React refs and helpers.

25 lines (24 loc) 929 B
import { map, merge, share } from 'rxjs/operators'; import { fromDocumentEvent } from './util'; export const toKeypress = (e, isPressed) => { const { key, code, altKey, ctrlKey, shiftKey, metaKey } = e; const isModifier = key === 'Meta' || key === 'Control' || key === 'Alt' || key === 'Shift'; const event = { event: e, isPressed, key, code, altKey, ctrlKey, shiftKey, metaKey, isModifier, preventDefault: () => e.preventDefault(), stopPropagation: () => e.stopPropagation(), stopImmediatePropagation: () => e.stopImmediatePropagation(), }; return event; }; export const keyDown$ = fromDocumentEvent('keydown').pipe(map((e) => toKeypress(e, true)), share()); export const keyUp$ = fromDocumentEvent('keyup').pipe(map((e) => toKeypress(e, false)), share()); export const keyPress$ = keyDown$.pipe(merge(keyUp$));