Commit 9edb44f

mo khan <mo@mokhan.ca>
2016-12-31 21:47:26
load workout screen.
1 parent c8dd4fb
app/screens/new-workout-screen.js
@@ -2,6 +2,7 @@ import React, { Component } from 'react';
 import { View } from 'react-native';
 import { Container, Header, Title, Content, Footer, FooterTab, Button, Icon, Spinner, DeckSwiper, Text, List, ListItem } from 'native-base';
 import Screen from './screen';
+import WorkoutScreen from './workout-screen';
 import * as events from '../services/events';
 
 export default class NewWorkoutScreen extends Screen {
@@ -9,7 +10,7 @@ export default class NewWorkoutScreen extends Screen {
     super(props);
     this.state = {
       isLoading: true,
-      eventsOfInterest: [ events.FETCHED_NEW_WORKOUT ]
+      eventsOfInterest: [ events.FETCHED_NEW_WORKOUT, events.CREATED_WORKOUT ]
     };
   }
 
@@ -28,6 +29,10 @@ export default class NewWorkoutScreen extends Screen {
             <Title>Routine {this.state.routine.name}</Title>
           </Header>
           <Content>
+            <Button large block iconRight onPress={this.onBeginWorkout.bind(this)}>
+              Begin
+              <Icon name='ios-arrow-forward' />
+            </Button>
             <Text>Body Weight: {this.state.body_weight.amount} {this.state.body_weight.unit}</Text>
             <List dataArray={this.state.exercises} renderRow={this.renderExercise.bind(this)}></List>
             <Button large block iconRight onPress={this.onBeginWorkout.bind(this)}>
@@ -92,6 +97,8 @@ export default class NewWorkoutScreen extends Screen {
     switch(event.event) {
       case events.FETCHED_NEW_WORKOUT:
         this.setState({ isLoading: false, ...event });
+      case events.CREATED_WORKOUT:
+        this.loadScreen(WorkoutScreen, { ...event })
     }
   }
 }
app/screens/workout-screen.js
@@ -0,0 +1,25 @@
+import * as events from '../services/events';
+import React, { Component } from 'react';
+import Screen from './screen';
+import { Container, Header, Title, Content, Footer, FooterTab, Button, Icon, Spinner, DeckSwiper, Text, List, ListItem } from 'native-base';
+
+export default class WorkoutScreen extends Screen {
+  render() {
+    return (
+      <Container>
+        <Header>
+          <Title>Routine {this.props.routine.name}</Title>
+        </Header>
+        <Content>
+          <List dataArray={this.props.sets} renderRow={this.renderSet.bind(this)}></List>
+        </Content>
+      </Container>
+    );
+  }
+
+  renderSet(set) {
+    return (
+      <Text>hello</Text>
+    );
+  }
+}
app/services/commands/create-workout-command.js
@@ -22,7 +22,9 @@ export default class CreateWorkoutCommand {
   }
 
   onResponse(json) {
-    console.log("CREATED");
-    console.log(json);
+    this.eventAggregator.publish({
+      event: events.CREATED_WORKOUT,
+      ...json
+    });
   }
 }
app/services/events.js
@@ -6,3 +6,4 @@ export const FETCHED_WORKOUTS = 'FETCHED_WORKOUTS';
 export const FETCH_NEW_WORKOUT = 'FETCH_NEW_WORKOUT';
 export const FETCHED_NEW_WORKOUT = 'FETCHED_NEW_WORKOUT';
 export const CREATE_WORKOUT = 'CREATE_WORKOUT';
+export const CREATED_WORKOUT = 'CREATED_WORKOUT';