@bbc/react-transcript-editor
Version:
A React component to make transcribing audio and video easier and faster.
59 lines (50 loc) • 2.25 kB
JavaScript
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; }
import React from 'react';
import PropTypes from 'prop-types';
class PlayerControls extends React.Component {
constructor(...args) {
super(...args);
_defineProperty(this, "setIntervalHelperBackward", () => {
this.interval = setInterval(() => {
this.props.skipBackward();
}, 300);
});
_defineProperty(this, "setIntervalHelperForward", () => {
this.interval = setInterval(() => {
this.props.skipForward();
}, 300);
});
_defineProperty(this, "clearIntervalHelper", () => {
clearInterval(this.interval);
});
_defineProperty(this, "setTimecodeOffSetHelper", () => {
this.props.setTimeCodeOffset(prompt('Add a timecode offset hh:mm:ss:ff'));
});
}
render() {
return React.createElement("div", null, React.createElement("button", {
onClick: e => {
this.props.playMedia(e);
}
}, " ", this.props.isPlaying() ? '❚❚' : '▶', " "), React.createElement("button", {
onMouseDown: this.setIntervalHelperBackward,
onMouseUp: this.clearIntervalHelper
}, " ", '◀◀'), React.createElement("button", {
onMouseDown: this.setIntervalHelperForward,
onMouseUp: this.clearIntervalHelper
}, " ", '▶▶'), React.createElement("br", null), React.createElement("code", null, this.props.currentTime), " / ", React.createElement("code", null, this.props.duration), React.createElement("br", null), React.createElement("button", {
type: "button",
onClick: this.props.promptSetCurrentTime
}, "Jump To Time \u23F1"), React.createElement("br", null), React.createElement("button", {
type: "button",
onClick: this.setTimecodeOffSetHelper
}, "Set Timecode Offset \u23F1"), React.createElement("output", null, React.createElement("code", null, this.props.timecodeOffset)));
}
}
PlayerControls.propTypes = {
playMedia: PropTypes.func,
currentTime: PropTypes.string,
timecodeOffset: PropTypes.string,
promptSetCurrentTime: PropTypes.func
};
export default PlayerControls;