diff --git a/app/components/builds/BuildItem.js b/app/components/builds/BuildItem.js
new file mode 100644
index 0000000..b1ecdce
--- /dev/null
+++ b/app/components/builds/BuildItem.js
@@ -0,0 +1,28 @@
+import React from 'react-native';
+import GlobalStyles from '../../settings/styles';
+import Icon from 'react-native-vector-icons/Octicons';
+
+const {
+ View,
+ Text,
+ StyleSheet,
+ TouchableHighlight
+} = React;
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ height: 70,
+ alignItems: 'stretch',
+ backgroundColor: GlobalStyles.get('CIRCLE_ITEM_BG'),
+ borderBottomColor: GlobalStyles.get('CIRCLE_ITEM_BORDER'),
+ borderBottomWidth: 2,
+ flexDirection: 'row',
+ }
+});
+
+export default class BuildItem extends React.Component {
+ render() {
+ return null;
+ }
+};
diff --git a/app/components/builds/BuildList.js b/app/components/builds/BuildList.js
new file mode 100644
index 0000000..48d1f61
--- /dev/null
+++ b/app/components/builds/BuildList.js
@@ -0,0 +1,40 @@
+import React from 'react-native';
+import BuildItem from './BuildItem';
+
+const {
+ ListView,
+ StyleSheet,
+ ScrollView
+} = React;
+
+const styles = StyleSheet.create({
+ listView: {
+ flex: 1,
+ flexDirection: 'column',
+ alignItems: 'stretch',
+ justifyContent: 'center',
+ flexWrap: 'wrap',
+ paddingHorizontal: 5
+ },
+});
+
+export default class BuildList extends React.Component {
+ constructor(props) {
+ super(props);
+ }
+
+ renderRow(build) {
+ return ;
+ }
+
+ render() {
+ return (
+
+
+
+ );
+ }
+};
diff --git a/app/components/projects/ProjectItem.js b/app/components/projects/ProjectItem.js
index 96be259..1d31bbd 100644
--- a/app/components/projects/ProjectItem.js
+++ b/app/components/projects/ProjectItem.js
@@ -3,6 +3,7 @@ import GlobalStyles from '../../settings/styles';
import { getProjectRecentBuilds } from '../../api/CircleCI';
import moment from 'moment';
import Icon from 'react-native-vector-icons/Octicons';
+import RouteMaster from '../routes/RouteMaster';
const {
View,
@@ -73,7 +74,11 @@ export default class ProjectItem extends React.Component {
}
_viewBuildDetails() {
-
+ const destination = RouteMaster.get('PROJECT_DETAILS');
+ destination.props = {
+ project: this.props.project
+ };
+ this.props.nav.push(destination);
}
_displayMoreInfo(mostRecentBuild) {
diff --git a/app/components/projects/ProjectList.js b/app/components/projects/ProjectList.js
index a42c6e4..bb93624 100644
--- a/app/components/projects/ProjectList.js
+++ b/app/components/projects/ProjectList.js
@@ -41,7 +41,7 @@ export default class ProjectList extends React.Component {
}
renderRow(project) {
- return ;
+ return ;
}
render() {
diff --git a/app/components/routes/RouteMaster.js b/app/components/routes/RouteMaster.js
index 95fbcb3..cf5ef17 100644
--- a/app/components/routes/RouteMaster.js
+++ b/app/components/routes/RouteMaster.js
@@ -3,6 +3,7 @@ import { Map } from 'immutable';
import Login from './login';
import Info from './info';
import Home from './home';
+import ProjectDetails from './project-details';
export default Map({
'LOGIN': {
@@ -16,5 +17,9 @@ export default Map({
'HOME': {
id: 'home',
component: Home
+ },
+ 'PROJECT_DETAILS': {
+ id: 'project_details',
+ component: ProjectDetails
}
});
diff --git a/app/components/routes/home.js b/app/components/routes/home.js
index 9f19bcc..4d06169 100644
--- a/app/components/routes/home.js
+++ b/app/components/routes/home.js
@@ -26,6 +26,7 @@ export default class Home extends React.Component {
projects: '',
userDetails: ''
};
+ this.didReset = false;
}
componentWillUnmount() {
@@ -39,7 +40,10 @@ export default class Home extends React.Component {
componentDidMount() {
this.props.nav.navigationContext.addListener('didfocus', function () {
- this.props.nav.immediatelyResetRouteStack([this.props.currentRoute]);
+ if (!this.didReset) {
+ this.props.nav.immediatelyResetRouteStack([this.props.currentRoute]);
+ this.didReset = true;
+ }
}.bind(this));
getProjects().then(function (data) {
@@ -57,7 +61,7 @@ export default class Home extends React.Component {
let list;
if (this.state.projects) {
list = (
-
+
);
loaderHandler.hideLoader();
} else {
diff --git a/app/components/routes/project-details.js b/app/components/routes/project-details.js
new file mode 100644
index 0000000..c08135c
--- /dev/null
+++ b/app/components/routes/project-details.js
@@ -0,0 +1,45 @@
+import React from 'react-native';
+import { getProjectRecentBuilds } from '../../api/CircleCI';
+import loaderHandler from 'react-native-busy-indicator/LoaderHandler';
+// import BuildList from '../builds/BuildList';
+import GlobalStyles from '../../settings/styles';
+
+
+const {
+ StyleSheet,
+ View,
+ BackAndroid,
+ Text
+} = React;
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: GlobalStyles.get('CIRCLE_BG')
+ },
+ title: {
+ fontSize: GlobalStyles.get('TITLE_FONT_SIZE'),
+ textAlign: 'center'
+ },
+ statusHeading: {
+ fontSize: 18,
+ textAlign: 'center'
+ }
+});
+
+export default class ProjectDetails extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ project: props.currentRoute.props.project
+ };
+ }
+ render() {
+ return (
+
+ {this.state.project.reponame}
+ Status:
+
+ );
+ }
+};
diff --git a/app/settings/styles.js b/app/settings/styles.js
index d0f67e6..edbf776 100644
--- a/app/settings/styles.js
+++ b/app/settings/styles.js
@@ -9,5 +9,7 @@ export default Map({
CIRCLE_ITEM_BG: '#fff',
CIRCLE_ITEM_BORDER: '#E5E5E5',
CIRCLE_TEST_FAIL: '#ED5C5C',
- CIRCLE_TEST_PASS: '#42C88A'
+ CIRCLE_TEST_PASS: '#42C88A',
+
+ TITLE_FONT_SIZE: 24
});