Use jQuery to test reload

This commit is contained in:
Jeffrey Morgan 2015-02-17 10:09:07 -08:00
parent 33be5faddc
commit c57ac7e58e
1 changed files with 20 additions and 12 deletions

View File

@ -4,6 +4,8 @@ var exec = require('exec');
var ContainerStore = require('./ContainerStore'); var ContainerStore = require('./ContainerStore');
var ContainerUtil = require('./ContainerUtil'); var ContainerUtil = require('./ContainerUtil');
var Router = require('react-router'); var Router = require('react-router');
var Promise = require('bluebird');
var $ = require('jquery');
var ContainerHomePreview = React.createClass({ var ContainerHomePreview = React.createClass({
mixins: [Router.State, Router.Navigation], mixins: [Router.State, Router.Navigation],
@ -19,22 +21,28 @@ var ContainerHomePreview = React.createClass({
componentDidMount: function() { componentDidMount: function() {
this.init(); this.init();
}, },
componentDidUpdate: function () { reload: function () {
var webview = document.getElementById('webview'); var webview = document.getElementById('webview');
if (webview) { if (webview) {
webview.addEventListener('did-finish-load', () => { try {
//HACK: if the title is the host:port the page probably hasn't loaded yet var url = webview.src;
if (this.state.ports[this.state.defaultPort].url.replace('http://', '') === webview.getTitle()) { Promise.resolve($.get(url)).then(() => {
setTimeout(function () { webview.reload();
try { }).catch(err => {
webview.reload(); if (err.status === 0) {
} catch (err) { setTimeout(this.reload, 2000);
} } else {
}, 1000); webview.reload();
} }
}); });
} catch (err) {
}
} }
}, },
componentDidUpdate: function () {
this.reload();
},
componentWillUnmount: function() { componentWillUnmount: function() {
clearInterval(this.timer); clearInterval(this.timer);
}, },