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}
); } else { var ports = _.map(_.pairs(this.props.ports), 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:

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