var _ = require('underscore'); var React = require('react/addons'); var request = require('request'); var shell = require('shell'); var metrics = require('../utils/MetricsUtil'); var ContainerHomePreview = React.createClass({ contextTypes: { router: React.PropTypes.func }, reload: function () { var webview = document.getElementById('webview'); if (webview) { var url = webview.src; request(url, err => { if (err && err.code === 'ECONNREFUSED') { setTimeout(this.reload, 2000); } else { try { webview.reload(); } catch (err) {} } }); } }, componentWillUnmount: function() { clearInterval(this.timer); }, handleClickPreview: function () { if (this.props.defaultPort) { metrics.track('Opened In Browser', { from: 'preview' }); shell.openExternal(this.props.ports[this.props.defaultPort].url); } }, handleClickNotShowingCorrectly: function () { metrics.track('Viewed Port Settings', { from: 'preview' }); this.context.router.transitionTo('containerSettingsPorts', {name: this.context.router.getCurrentParams().name}); }, render: function () { var preview; if (this.props.defaultPort) { var frame = React.createElement('webview', {className: 'frame', id: 'webview', src: this.props.ports[this.props.defaultPort].url, autosize: 'on'}); preview = (

Web Preview

{frame}
Open in Browser
Not showing correctly?
); } else { var ports = _.map(_.pairs(this.props.ports), function (pair) { var key = pair[0]; var val = pair[1]; return (
{key} {val.display}
); }); preview = (

IP & Ports

You can access this container using the following IP address and port:

DOCKER PORT
MAC PORT
{ports}
); } return preview; } }); module.exports = ContainerHomePreview;