UNPKG

unveil

Version:

A React-based Reactive Presentation Framework

50 lines (37 loc) 3.11 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _rxjs = require('rxjs'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = _react2.default.createClass({ displayName: 'KeyControls', propTypes: { navigator: _react2.default.PropTypes.object.isRequired }, mappings: { 37: 'left', 38: 'up', 39: 'right', 40: 'down' }, getInitialState: function getInitialState() { return { key: 'none' }; }, componentDidMount: function componentDidMount() { var _this = this; _rxjs.Observable.fromEvent(document, 'keyup').pluck('keyCode').map(function (code) { return _this.mappings[code]; }).filter(function (motion) { return motion !== undefined; }).do(function (key) { this.setState({ key: key }); }.bind(this)).subscribe(this.props.navigator.next); }, render: function render() { return _react2.default.createElement('div', null); } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0tleUNvbnRyb2xzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O2tCQUllLGdCQUFNLFdBQU4sQ0FBa0I7OztBQUUvQixhQUFXO0FBQ1QsZUFBVyxnQkFBTSxTQUFOLENBQWdCLE1BQWhCLENBQXVCLFVBQXZCO0dBRGI7O0FBSUEsWUFBVTtBQUNSLFFBQUksTUFBSjtBQUNBLFFBQUksSUFBSjtBQUNBLFFBQUksT0FBSjtBQUNBLFFBQUksTUFBSjtHQUpGOztBQU9BLG1CQUFpQjtXQUFPLEVBQUUsS0FBSyxNQUFMO0dBQVQ7O0FBRWpCLHFCQUFtQiw2QkFBWTs7O0FBQzdCLHFCQUFXLFNBQVgsQ0FBcUIsUUFBckIsRUFBK0IsT0FBL0IsRUFDRyxLQURILENBQ1MsU0FEVCxFQUVHLEdBRkgsQ0FFUSxVQUFDLElBQUQ7YUFBVSxNQUFLLFFBQUwsQ0FBYyxJQUFkO0tBQVYsQ0FGUixDQUdHLE1BSEgsQ0FHVyxVQUFDLE1BQUQ7YUFBWSxXQUFXLFNBQVg7S0FBWixDQUhYLENBSUcsRUFKSCxDQUlPLFVBQVUsR0FBVixFQUFlO0FBQ2xCLFdBQUssUUFBTCxDQUFjLEVBQUMsUUFBRCxFQUFkLEVBRGtCO0tBQWYsQ0FFSCxJQUZHLENBRUUsSUFGRixDQUpQLEVBT0csU0FQSCxDQU9hLEtBQUssS0FBTCxDQUFXLFNBQVgsQ0FBcUIsSUFBckIsQ0FQYixDQUQ2QjtHQUFaOztBQVduQixVQUFRLGtCQUFZO0FBQ2xCLFdBQVEsMENBQVIsQ0FEa0I7R0FBWjs7Q0ExQksiLCJmaWxlIjoiS2V5Q29udHJvbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBkZWZhdWx0IFJlYWN0LmNyZWF0ZUNsYXNzKHtcblxuICBwcm9wVHlwZXM6IHtcbiAgICBuYXZpZ2F0b3I6IFJlYWN0LlByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxuICB9LFxuXG4gIG1hcHBpbmdzOiB7XG4gICAgMzc6ICdsZWZ0JyxcbiAgICAzODogJ3VwJyxcbiAgICAzOTogJ3JpZ2h0JyxcbiAgICA0MDogJ2Rvd24nXG4gIH0sXG5cbiAgZ2V0SW5pdGlhbFN0YXRlOiAoKSA9PiAoeyBrZXk6ICdub25lJyB9KSxcblxuICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gKCkge1xuICAgIE9ic2VydmFibGUuZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5dXAnKVxuICAgICAgLnBsdWNrKCdrZXlDb2RlJylcbiAgICAgIC5tYXAoIChjb2RlKSA9PiB0aGlzLm1hcHBpbmdzW2NvZGVdIClcbiAgICAgIC5maWx0ZXIoIChtb3Rpb24pID0+IG1vdGlvbiAhPT0gdW5kZWZpbmVkIClcbiAgICAgIC5kbyggZnVuY3Rpb24gKGtleSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtrZXl9KTtcbiAgICAgIH0uYmluZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5wcm9wcy5uYXZpZ2F0b3IubmV4dCk7XG4gIH0sXG5cbiAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICg8ZGl2PjwvZGl2Pik7XG4gIH1cblxufSk7XG4iXX0=