JSFiddle - React, Tailwind, and code Playground

by AlexMost

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/4.0.6/rx.all.min.js"></script>

JavaScript

"use strict";

const keyUps = Rx.Observable.fromEvent(document, 'keyup');
const keyDowns = Rx.Observable.fromEvent(document, 'keydown');

// getting space events
const spaceKeyUps = keyUps.filter((data) => data.keyCode === 32);
const spaceKeyDowns = keyDowns.filter((data) => data.keyCode === 32);

// signal start/end events
const signalStarts = spaceKeyDowns.map(() => "start");
const signalEnds = spaceKeyUps.map(() => "end");

// look to the console to see the result
signalStarts.subscribe((data) => console.log(data));
signalEnds.subscribe((data) => console.log(data));