Skip to content

Commit 83790b9

Browse files
committed
Update async-data example
1 parent 9fb2615 commit 83790b9

File tree

1 file changed

+14
-22
lines changed

1 file changed

+14
-22
lines changed

examples/async-data/app.js

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
/** @jsx React.DOM */
21
var React = require('react');
32
var Router = require('react-router');
43
var whenKeys = require('when/keys');
54
var EventEmitter = require('events').EventEmitter;
6-
var { Route, DefaultRoute, NotFoundRoute, ActiveRouteHandler } = Router;
7-
var { Link, Navigation, ActiveState } = Router;
5+
var { Route, DefaultRoute, RouteHandler, Link } = Router;
86

97
var API = 'http://addressbook-api.herokuapp.com';
108
var loadingEvents = new EventEmitter();
@@ -33,7 +31,6 @@ function getJSON(url) {
3331
}
3432
getJSON._cache = {};
3533

36-
3734
var App = React.createClass({
3835

3936
statics: {
@@ -54,13 +51,13 @@ var App = React.createClass({
5451
// otherwise its fast enough to just wait for the
5552
// data to load
5653
timer = setTimeout(() => {
57-
this.setState({loading: true});
54+
this.setState({ loading: true });
5855
}, 300);
5956
});
6057

6158
loadingEvents.on('loadEnd', () => {
6259
clearTimeout(timer);
63-
this.setState({loading: false});
60+
this.setState({ loading: false });
6461
});
6562
},
6663

@@ -80,7 +77,7 @@ var App = React.createClass({
8077
<ul>
8178
{this.renderContacts()}
8279
</ul>
83-
<ActiveRouteHandler {...this.props}/>
80+
<RouteHandler {...this.props}/>
8481
</div>
8582
);
8683
}
@@ -115,32 +112,27 @@ var Index = React.createClass({
115112
}
116113
});
117114

118-
119-
120115
var routes = (
121116
<Route name="contacts" path="/" handler={App}>
122117
<DefaultRoute handler={Index}/>
123118
<Route name="contact" path="contact/:id" handler={Contact}/>
124119
</Route>
125120
);
126121

127-
function fetchData(matches, params) {
128-
return whenKeys.all(matches.filter((match) => {
129-
return match.route.handler.fetchData;
130-
}).reduce((data, match) => {
131-
var {name, handler} = match.route;
132-
data[name] = handler.fetchData(params);
122+
function fetchData(routes, params) {
123+
return whenKeys.all(routes.filter((route) => {
124+
return route.handler.fetchData;
125+
}).reduce((data, route) => {
126+
data[route.name] = route.handler.fetchData(params);
133127
return data;
134128
}, {}));
135129
}
136130

137-
function render (Handler, state) {
131+
Router.run(routes, function (Handler, state) {
138132
loadingEvents.emit('loadStart');
139-
fetchData(state.matches, state.activeParams).then((data) => {
133+
134+
fetchData(state.routes, state.params).then((data) => {
140135
loadingEvents.emit('loadEnd');
141-
React.render(<Handler data={data} />, document.getElementById('example'));
136+
React.render(<Handler data={data}/>, document.getElementById('example'));
142137
});
143-
}
144-
145-
Router.run(routes, render);
146-
138+
});

0 commit comments

Comments
 (0)