Commit 0c280cf

mo khan <mo@mokhan.ca>
2016-12-03 16:35:18
connect the event aggregator.
1 parent 40a5884
Changed files (4)
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);