2015-07-04 18:59:22 +00:00
|
|
|
import Rx from 'rx';
|
|
|
|
import React from 'react';
|
|
|
|
import { Router } from 'react-router';
|
|
|
|
import { history } from 'react-router/lib/BrowserHistory';
|
2015-06-18 04:04:28 +00:00
|
|
|
import debugFactory from 'debug';
|
|
|
|
import { Cat } from 'thundercats';
|
|
|
|
|
2015-07-01 22:14:10 +00:00
|
|
|
import { app$ } from '../common/app';
|
2015-06-18 04:04:28 +00:00
|
|
|
|
|
|
|
const debug = debugFactory('fcc:client');
|
2015-07-04 18:59:22 +00:00
|
|
|
const DOMContianer = document.getElementById('fcc');
|
2015-06-18 04:04:28 +00:00
|
|
|
const fcc = new Cat();
|
|
|
|
|
2015-07-04 18:59:22 +00:00
|
|
|
Rx.longStackSupport = !!debug.enabled;
|
|
|
|
|
2015-06-18 04:04:28 +00:00
|
|
|
// returns an observable
|
2015-07-04 18:59:22 +00:00
|
|
|
app$(history)
|
|
|
|
.flatMap(([ initialState ]) => {
|
|
|
|
return fcc.render(React.createElement(Router, initialState), DOMContianer);
|
2015-06-29 16:50:25 +00:00
|
|
|
})
|
2015-06-18 04:04:28 +00:00
|
|
|
.subscribe(
|
2015-07-04 18:59:22 +00:00
|
|
|
() => {
|
2015-06-18 04:04:28 +00:00
|
|
|
debug('react rendered');
|
|
|
|
},
|
2015-07-04 18:59:22 +00:00
|
|
|
err => {
|
2015-06-18 04:04:28 +00:00
|
|
|
debug('an error has occured', err.stack);
|
2015-07-04 18:59:22 +00:00
|
|
|
},
|
|
|
|
() => {
|
|
|
|
debug('react closed subscription');
|
2015-06-18 04:04:28 +00:00
|
|
|
}
|
|
|
|
);
|