Commit 0c280cf
Changed files (4)
app
app/components/application-shell.js
@@ -2,17 +2,20 @@ import React, { Component } from 'react';
import { AppRegistry, Text, ListView, View, Image, TextInput, Navigator } from 'react-native';
import LoginScreen from '../screens/login-screen'
import Router from '../infrastructure/router'
+import EventAggregator from '../infrastructure/event-aggregator';
export default class ApplicationShell extends Component {
constructor(props) {
super(props);
- this.router = new Router();
+ const eventAggregator = new EventAggregator();
+ this.router = new Router({eventAggregator});
}
+
render() {
return (
<Navigator
initialRoute={{component: LoginScreen, params: {}}}
- renderScene={this.router.routeTo}
+ renderScene={this.router.routeTo.bind(this.router)}
configureScene={(route) => Navigator.SceneConfigs.FloatFromRight}
/>
);
app/infrastructure/__tests__/router_spec.js
@@ -12,7 +12,7 @@ describe("Router", () => {
subject = new Router({ eventAggregator });
});
- describe("routeTo", () => {
+ describe("#routeTo", () => {
let params = { personId: 1 };
let route = { component: MyComponent, params: params };
let navigator = {};
app/screens/login-screen.js
@@ -15,6 +15,16 @@ export default class LoginScreen extends Component {
};
}
+ componentDidMount() {
+ console.log("MOUNTED");
+ this.props.eventAggregator.subscribe('LOGGED_IN', this);
+ }
+
+ componentWillUnmount() {
+ console.log("UNMOUNTING");
+ this.props.eventAggregator.unsubscribe(this);
+ }
+
render() {
return (
<View style={styles.container}>
index.android.js
@@ -1,5 +1,7 @@
import React, { Component } from 'react';
import { AppRegistry } from 'react-native';
import App from './app/containers/app'
+import ApplicationShell from './app/components/application-shell'
-AppRegistry.registerComponent('AwesomeProject', () => App);
+AppRegistry.registerComponent('AwesomeProject', () => ApplicationShell);
+//AppRegistry.registerComponent('AwesomeProject', () => App);