Skip to content

Instantly share code, notes, and snippets.

@gnz00
Created October 4, 2015 12:20
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gnz00/237ddb6d09675da889b4 to your computer and use it in GitHub Desktop.
Save gnz00/237ddb6d09675da889b4 to your computer and use it in GitHub Desktop.
src_routes.js
import React from 'react';
import Router from 'react-routing/src/Router';
import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';
import http from './core/HttpClient';
import App from './components/App';
import IndexPage from './components/IndexPage';
import NotFoundPage from './components/NotFoundPage';
import ErrorPage from './components/ErrorPage';
import NProgress from 'react-nprogress';
const router = new Router(on => {
on('*', async (state, next) => {
const component = await next();
return component && <App context={state.context}>{component}</App>;
});
on('/', async () => {
let data = getDataMock("/api/people");
return <IndexPage name={data}/>
});
on('error', (state, error) => {
console.log(error);
console.log(state);
return state.statusCode === 404 ?
<App context={state.context} error={error}><NotFoundPage /></App> :
<App context={state.context} error={error}><ErrorPage /></App>
}
);
});
export default router;
var getDataMock = function(url) {
if (canUseDOM)
NProgress.start();
return new Promise(function(resolve, reject) {
setTimeout(function() {
if (canUseDOM)
NProgress.done();
resolve([{ name: "Jake" }]);
}, 10000);
});
};
/*
http://material-ui.com/ DARK
https://github.com/erikschlegel/React-Twitter-Typeahead
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment