const electron = require('electron'); // eslint-disable-line
const $ = require('jquery');
const Mousetrap = require('mousetrap');
const _ = require('lodash');
const Hammer = require('react-hammerjs');
const path = require('path');
const React = require('react');
const ReactDOM = require('react-dom');
const classnames = require('classnames');
const captureFrame = require('./capture-frame');
const ffmpeg = require('./ffmpeg');
const util = require('./util');
const dialog = electron.remote.dialog;
function setFileNameTitle(filePath) {
const appName = 'LosslessCut';
document.title = filePath ? `${appName} - ${path.basename(filePath)}` : 'appName';
}
function getVideo() {
return $('#player video')[0];
}
function seekAbs(val) {
const video = getVideo();
if (val == null || isNaN(val)) return;
let outVal = val;
if (outVal < 0) outVal = 0;
if (outVal > video.duration) outVal = video.duration;
video.currentTime = outVal;
}
function setCursor(val) {
seekAbs(val);
}
function seekRel(val) {
seekAbs(getVideo().currentTime + val);
}
function shortStep(dir) {
seekRel((1 / 60) * dir);
}
function renderHelpSheet(visible) {
if (visible) {
return (
{!this.state.filePath &&
DROP VIDEO
}
{this.state.working && (
{Math.floor((this.state.cutProgress || 0) * 100)} %
)}
this.handleTap(e)}
onPan={e => this.handlePan(e)}
options={{
recognizers: {
},
}}
>
{this.isCutRangeValid() &&
}
{util.formatDuration(this.state.currentTime)}
seekAbs(0)}
/>
{this.renderCutTimeInput('start')}
this.jumpCutStart())}
/>
shortStep(-1)}
/>
this.playCommand()}
/>
shortStep(1)}
/>
{this.renderCutTimeInput('end')}
this.jumpCutEnd())}
/>
seekAbs(this.state.duration)}
/>
this.setCutStart()}
/>
this.cutClick()}
/>
this.setCutEnd()}
/>
this.capture()}
/>
{renderHelpSheet(this.state.helpVisible)}
);
}
}
ReactDOM.render(