Make document titles work
parent
30826d9ecb
commit
ea574d721e
|
@ -47,6 +47,12 @@ app$({ history, location: appLocation })
|
|||
location => location && location.key ? location.key : location
|
||||
);
|
||||
|
||||
// set page title
|
||||
appStore$
|
||||
.pluck('title')
|
||||
.doOnNext(title => document.title = title)
|
||||
.subscribe(() => {});
|
||||
|
||||
synchroniseHistory(
|
||||
history,
|
||||
updateLocation,
|
||||
|
@ -55,8 +61,11 @@ app$({ history, location: appLocation })
|
|||
routerState$
|
||||
);
|
||||
})
|
||||
// allow store subscribe to subscribe to actions
|
||||
.delay(10)
|
||||
.flatMap(({ props, appCat }) => {
|
||||
props.history = history;
|
||||
|
||||
return render$(
|
||||
appCat,
|
||||
React.createElement(Router, props),
|
||||
|
|
|
@ -25,22 +25,6 @@ export default contain(
|
|||
username: PropTypes.string
|
||||
},
|
||||
|
||||
componentDidMount() {
|
||||
const title = this.props.title;
|
||||
this.setTitle(title);
|
||||
},
|
||||
|
||||
componentWillReceiveProps(nextProps) {
|
||||
if (nextProps.title !== this.props.title) {
|
||||
this.setTitle(nextProps.title);
|
||||
}
|
||||
},
|
||||
|
||||
setTitle(title) {
|
||||
const doc = typeof document !== 'undefined' ? document : {};
|
||||
doc.title = title;
|
||||
},
|
||||
|
||||
render() {
|
||||
const { username, points, picture } = this.props;
|
||||
const navProps = { username, points, picture };
|
||||
|
|
|
@ -54,6 +54,12 @@ export default function reactSubRouter(app) {
|
|||
.flatMap(function({ props, AppCat }) {
|
||||
const cat = AppCat(null, services);
|
||||
debug('render react markup and pre-fetch data');
|
||||
const store = cat.getStore('appStore');
|
||||
|
||||
// primes store to observe action changes
|
||||
// cleaned up by cat.dispose further down
|
||||
store.subscribe(() => {});
|
||||
|
||||
return renderToString$(
|
||||
cat,
|
||||
React.createElement(RoutingContext, props)
|
||||
|
|
Loading…
Reference in New Issue