Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
ff-editor / lib / Unit.js
Size: Mime:
'use strict';

Object.defineProperty(exports, "__esModule", {
    value: true
});

var _react = require('react');

var _react2 = _interopRequireDefault(_react);

var _App = require('./App');

var _App2 = _interopRequireDefault(_App);

var _draftJs = require('draft-js');

var _KeyBindingUtil = require('draft-js/lib/KeyBindingUtil');

var _Media = require('./components/Media');

var _Media2 = _interopRequireDefault(_Media);

var _demoText = require('./demoText');

var _demoText2 = _interopRequireDefault(_demoText);

var _demoText3 = require('./demoText2');

var _demoText4 = _interopRequireDefault(_demoText3);

var _demoText5 = require('./demoText3');

var _demoText6 = _interopRequireDefault(_demoText5);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

var Unit = _react2.default.createClass({
    displayName: 'Unit',
    getInitialState: function getInitialState() {
        return {
            trackChanges: false,
            content: _demoText6.default,
            editorState: null,
            currentTime: 0,
            goToTime: 0,
            scribeKeys: {
                play: {
                    key: 'F8',
                    keyCode: 119,
                    ctrlKey: false
                },
                stop: {
                    key: 'F4',
                    keyCode: 115,
                    ctrlKey: false
                },
                rwd: {
                    key: 'F7',
                    keyCode: 118,
                    ctrlKey: false
                },
                fwd: {
                    key: 'F9',
                    keyCode: 120,
                    ctrlKey: false
                },
                cross: {
                    key: 'c',
                    keyCode: 67,
                    ctrlKey: true
                },
                inaud: {
                    key: 'd',
                    keyCode: 84,
                    ctrlKey: true
                }
            }
        };
    },
    scribeKeyHandler: function scribeKeyHandler(event) {
        var _this = this;

        var keyCode = event.keyCode;
        var ctrlKey = (0, _KeyBindingUtil.hasCommandModifier)(event);
        var action = false;
        Object.keys(this.state.scribeKeys).forEach(function (KEY) {
            var cmd = _this.state.scribeKeys[KEY];
            if (cmd.keyCode !== keyCode) return;
            if (cmd.ctrlKey !== ctrlKey) return;
            action = KEY;
        });
        if (action === false) return;

        switch (action) {
            case 'play':
            case 'stop':
            case 'fwd':
            case 'rwd':
                try {
                    window['ff' + action]();
                } catch (err) {
                    //Eat it
                    console.log(err);
                }
                break;
            default:
                return action;
                break;
        }
        return;
    },
    onChange: function onChange(editorState) {
        var content = (0, _draftJs.convertToRaw)(editorState.getCurrentContent());
        this.setState({ content: content, editorState: editorState });
    },
    onTimeUpdate: function onTimeUpdate(event) {
        this.setState({ currentTime: event.target.currentTime });
    },
    setCurrentTime: function setCurrentTime(ts) {
        this.setState({ goToTime: ts });
        return;
    },
    trackChanges: function trackChanges(event) {
        this.setState({ trackChanges: !this.state.trackChanges });
    },
    render: function render() {
        var _React$createElement;

        return _react2.default.createElement(
            'div',
            null,
            _react2.default.createElement(_Media2.default, { onTimeUpdate: this.onTimeUpdate, goToTime: this.state.goToTime }),
            _react2.default.createElement(
                'label',
                null,
                _react2.default.createElement('input', { type: 'checkbox',
                    checked: this.state.trackChanges,
                    onChange: this.trackChanges }),
                'Track Changes'
            ),
            _react2.default.createElement(_App2.default, (_React$createElement = { currentTime: this.state.currentTime,
                content: this.state.content
            }, _defineProperty(_React$createElement, 'currentTime', this.state.currentTime), _defineProperty(_React$createElement, 'trackChanges', this.state.trackChanges), _defineProperty(_React$createElement, 'setCurrentTime', this.setCurrentTime), _defineProperty(_React$createElement, 'editorState', this.state.editorState), _defineProperty(_React$createElement, 'scribeKeys', this.state.scribeKeys), _defineProperty(_React$createElement, 'scribeKeyHandler', this.scribeKeyHandler), _defineProperty(_React$createElement, 'onChange', this.onChange), _React$createElement))
        );
    }
});

exports.default = Unit;