Commit 9edb44f
Changed files (4)
app
services
commands
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';