diff --git a/package.json b/package.json
index 3df00984..a90eeef7 100644
--- a/package.json
+++ b/package.json
@@ -83,7 +83,7 @@
"clean": "node ./bin/clean.js",
"open-config": "node ./bin/open-config.js",
"package": "node ./bin/package.js",
- "start": "electron .",
+ "start": "jsx --es6module src/ build/ && electron .",
"test": "standard && node ./bin/check-deps.js",
"update-authors": "./bin/update-authors.sh"
}
diff --git a/src/renderer/lib/state.js b/src/renderer/lib/state.js
index 2fd1ba82..af48a045 100644
--- a/src/renderer/lib/state.js
+++ b/src/renderer/lib/state.js
@@ -82,6 +82,7 @@ function getDefaultPlayState () {
lastTimeUpdate: 0, /* Unix time in ms */
mouseStationarySince: 0, /* Unix time in ms */
playbackRate: 1,
+ volume: 1,
subtitles: {
tracks: [], /* subtitle tracks, each {label, language, ...} */
selectedIndex: -1, /* current subtitle track */
diff --git a/src/renderer/main.js b/src/renderer/main.js
index 2ef43d9c..eaa331f3 100644
--- a/src/renderer/main.js
+++ b/src/renderer/main.js
@@ -82,7 +82,7 @@ function onState (err, _state) {
// a progress bar and to keep the cursor in sync when playing a video
setInterval(update, 1000)
window.requestAnimationFrame(renderIfNecessary)
- app = ReactDOM.render(, document.querySelector('body'))
+ app = ReactDOM.render(, document.querySelector('#body'))
// OS integrations:
// ...drag and drop a torrent or video file to play or seed
@@ -240,8 +240,8 @@ const dispatchHandlers = {
// Events from the UI never modify state directly. Instead they call dispatch()
function dispatch (action, ...args) {
- // Log dispatch calls, for debugging
- if (!['mediaMouseMoved', 'mediaTimeUpdate'].includes(action)) {
+ // Log dispatch calls, for debugging, but don't spam
+ if (!['mediaMouseMoved', 'mediaTimeUpdate', 'update'].includes(action)) {
console.log('dispatch: %s %o', action, args)
}
diff --git a/src/renderer/views/app.js b/src/renderer/views/app.js
index e2224e99..bd159803 100644
--- a/src/renderer/views/app.js
+++ b/src/renderer/views/app.js
@@ -24,7 +24,6 @@ module.exports = class App extends React.Component {
}
render () {
- console.time('render app')
var state = this.state
// Hide player controls while playing video, if the mouse stays still for a while
@@ -55,7 +54,7 @@ module.exports = class App extends React.Component {
{getModal(state)}
)
- console.timeEnd('render app')
+
return vdom
}
}
diff --git a/src/renderer/views/create-torrent-error-page.js b/src/renderer/views/create-torrent-error-page.js
new file mode 100644
index 00000000..b59a360f
--- /dev/null
+++ b/src/renderer/views/create-torrent-error-page.js
@@ -0,0 +1,26 @@
+const React = require('react')
+
+const {dispatcher} = require('../lib/dispatcher')
+
+module.exports = class CreateTorrentErrorPage extends React.Component {
+ render () {
+ return (
+
+
Create torrent
+
+
+ Sorry, you must select at least one file that is not a hidden file.
+
+
+ Hidden files, starting with a . character, are not included.
+
+
+
+
+
+
+ )
+ }
+}
diff --git a/src/renderer/views/create-torrent.js b/src/renderer/views/create-torrent.js
index 9deafb7c..7fe4a308 100644
--- a/src/renderer/views/create-torrent.js
+++ b/src/renderer/views/create-torrent.js
@@ -46,12 +46,12 @@ module.exports = class CreateTorrentPage extends React.Component {
basePath = path.dirname(pathPrefix)
}
var maxFileElems = 100
- var fileElems = files.slice(0, maxFileElems).map(function (file) {
+ var fileElems = files.slice(0, maxFileElems).map(function (file, i) {
var relativePath = files.length === 0 ? file.name : path.relative(pathPrefix, file.path)
- return ({relativePath}
)
+ return ({relativePath}
)
})
if (files.length > maxFileElems) {
- fileElems.push(+ {maxFileElems - files.length} more
)
+ fileElems.push(+ {maxFileElems - files.length} more
)
}
var trackers = createTorrent.announceList.join('\n')
var collapsedClass = info.showAdvanced ? 'expanded' : 'collapsed'
@@ -59,39 +59,39 @@ module.exports = class CreateTorrentPage extends React.Component {
return (
Create torrent {defaultName}
-
+
+
{pathPrefix}
-
-
+
{info.showAdvanced ? 'Basic' : 'Advanced'}
-
-
+
+
+
+
-
-
-
-
)
diff --git a/src/renderer/views/player.js b/src/renderer/views/player.js
index 94e43d57..afbd0106 100644
--- a/src/renderer/views/player.js
+++ b/src/renderer/views/player.js
@@ -94,6 +94,7 @@ function renderMedia (state) {
var isSelected = state.playing.subtitles.selectedIndex === i
trackTags.push(