Home page skeleton.

This commit is contained in:
Sean Li 2015-02-04 13:24:07 -08:00
parent a3e09c305a
commit f28e8c6df4
4 changed files with 60 additions and 22 deletions

View File

@ -400,15 +400,13 @@ var ContainerDetails = React.createClass({
} else { } else {
if (this.state.page === this.PAGE_HOME) { if (this.state.page === this.PAGE_HOME) {
body = ( body = (
<ContainerHome /> <ContainerHome ports={this.state.ports} defaultPort={this.state.defaultPort} logs={logs} />
); );
} else if (this.state.page === this.PAGE_LOGS) { } else if (this.state.page === this.PAGE_LOGS) {
body = ( body = (
<div className="details-panel details-logs"> <div className="details-panel details-logs logs">
<div className="logs">
{logs} {logs}
</div> </div>
</div>
); );
} else if (this.state.page === this.PAGE_PORTS) { } else if (this.state.page === this.PAGE_PORTS) {
body = ( body = (

View File

@ -1,16 +1,36 @@
var $ = require('jquery');
var React = require('react/addons'); var React = require('react/addons');
var ContainerHome = React.createClass({ var ContainerHome = React.createClass({
componentDidUpdate: function () {
// Scroll logs to bottom
var parent = $('.mini-logs');
if (parent.length) {
if (parent.scrollTop() >= this._oldHeight) {
parent.stop();
parent.scrollTop(parent[0].scrollHeight - parent.height());
}
this._oldHeight = parent[0].scrollHeight - parent.height();
}
},
render: function () { render: function () {
/*var preview; var preview;
if (this.state.defaultPort) { if (this.props.defaultPort) {
preview = ( preview = (
<iframe src={this.state.ports[this.state.defaultPort].url} autosize="on"></iframe> <iframe src={this.props.ports[this.props.defaultPort].url}></iframe>
); );
}*/ }
return ( return (
<div className="details-panel"> <div className="details-panel home">
<h1>HOME</h1> <div className="content">
<h4>Web Preview</h4>
<div className="widget web-preview">
{preview}
</div>
<div className="widget mini-logs">
{this.props.logs}
</div>
</div>
</div> </div>
); );
} }

View File

@ -633,15 +633,43 @@
flex: 1; flex: 1;
overflow: auto; overflow: auto;
background-color: #FFF; background-color: #FFF;
.logs { &.home {
background-color: #F9F9F9;
flex: 1;
.widget {
border-radius: 4px;
border: 1px solid @gray-lightest;
&.web-preview {
iframe {
border: 0;
border-radius: 4px;
}
}
&.mini-logs {
background-color: @gray-darkest;
color: @gray-lightest;
padding: 10px;
width: 300px;
height: 300px;
overflow: hidden;
font-family: Menlo;
font-size: 8px;
p {
margin-bottom: 5px;
}
}
}
}
&.logs {
background-color: @gray-darkest;
-webkit-user-select: text; -webkit-user-select: text;
font-family: Menlo; font-family: Menlo;
font-size: 12px; font-size: 12px;
padding: 20px 18px; padding: 20px 18px;
color: lighten(@gray-normal, 6%); color: @gray-lightest;
white-space: pre-wrap; white-space: pre-wrap;
p { p {
margin: 0 6px; margin-bottom: 8px;
} }
} }
.settings { .settings {

View File

@ -191,11 +191,3 @@ input[type="text"] {
.btn-info { .btn-styles(@btn-info-bg); } .btn-info { .btn-styles(@btn-info-bg); }
.btn-warning { .btn-styles(@btn-warning-bg); } .btn-warning { .btn-styles(@btn-warning-bg); }
.btn-danger { .btn-styles(@btn-danger-bg); } .btn-danger { .btn-styles(@btn-danger-bg); }
iframe {
border: 0;
width: 50%;
height: 300px;
border-radius: 4px;
border: 1px solid @gray-lightest;
}