Add throbber while waiting for builds to load
This commit is contained in:
parent
2730c26b2e
commit
149dd46076
4 changed files with 50 additions and 17 deletions
|
@ -2,6 +2,10 @@
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.rp-throbber {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
.rp-panelBody {
|
.rp-panelBody {
|
||||||
padding: 15px 30px;
|
padding: 15px 30px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import * as React from "react";
|
import * as React from "react";
|
||||||
|
|
||||||
import Build from "./build";
|
import Build from "./build";
|
||||||
|
import Throbber from "./throbber";
|
||||||
|
|
||||||
interface IBody {
|
interface IBody {
|
||||||
description: string;
|
description: string;
|
||||||
|
@ -91,8 +93,8 @@ class body extends React.Component<IBody, IBodyState> {
|
||||||
<div className="rp-description">{description}</div>
|
<div className="rp-description">{description}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="tab-pane" id="tab2">
|
<div className="tab-pane" id="tab2">
|
||||||
<h3 className="tab-header">Repository Builds</h3>
|
|
||||||
<div className="panel-body">
|
<div className="panel-body">
|
||||||
|
<h3 className="tab-header">Repository Builds</h3>
|
||||||
<Build data={this.state.currentBuild}/>
|
<Build data={this.state.currentBuild}/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,14 +1,19 @@
|
||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import * as moment from "moment";
|
import * as moment from "moment";
|
||||||
|
|
||||||
|
import Throbber from "./throbber";
|
||||||
|
|
||||||
export default class Build extends React.Component<any, any> {
|
export default class Build extends React.Component<any, any> {
|
||||||
render () {
|
render () {
|
||||||
let builds: any = this.props.data;
|
let builds: any = this.props.data;
|
||||||
let buildsTable: any = [];
|
let buildsTable: any = [];
|
||||||
|
let table: any;
|
||||||
if (Object.keys(builds).length === 0) {
|
if (Object.keys(builds).length === 0) {
|
||||||
buildsTable.push('Loading')
|
buildsTable.push('Loading')
|
||||||
|
table = <Throbber />
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
// Get Builds
|
||||||
builds.forEach((element, i) => {
|
builds.forEach((element, i) => {
|
||||||
let tags: Array<any> = []
|
let tags: Array<any> = []
|
||||||
element.tags.forEach(tag => {
|
element.tags.forEach(tag => {
|
||||||
|
@ -31,8 +36,8 @@ export default class Build extends React.Component<any, any> {
|
||||||
</tr>
|
</tr>
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
}
|
// Build the table
|
||||||
return(
|
table = (
|
||||||
<table className="co-table">
|
<table className="co-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -49,4 +54,11 @@ export default class Build extends React.Component<any, any> {
|
||||||
</table>
|
</table>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
return(
|
||||||
|
<div className="row">
|
||||||
|
{table}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
15
static/js/directives/components/pages/repo-page/throbber.tsx
Normal file
15
static/js/directives/components/pages/repo-page/throbber.tsx
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
import * as React from 'react';
|
||||||
|
import * as moment from "moment";
|
||||||
|
|
||||||
|
export default class Throbber extends React.Component<any, any> {
|
||||||
|
render () {
|
||||||
|
return(
|
||||||
|
<div className="co-m-loader co-an-fade-in-out rp-throbber">
|
||||||
|
<div className="co-m-loader-dot__one"></div>
|
||||||
|
<div className="co-m-loader-dot__two"></div>
|
||||||
|
<div className="co-m-loader-dot__three"></div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Reference in a new issue