Skip to content

Instantly share code, notes, and snippets.

@optilude
Created February 7, 2015 19:32
Show Gist options
  • Save optilude/cc4e171f23da84aa36ac to your computer and use it in GitHub Desktop.
Save optilude/cc4e171f23da84aa36ac to your computer and use it in GitHub Desktop.
Routing triggers action
var React = require('react');
var Router = require('./router');
var NavigationActionCreators = require('./navigation/navigationActionCreators');
Router.run(function(Handler, state) {
NavigationActionCreators.routerNavigate(Handler, state);
React.render(<Handler />, document.body);
});
/*jshint globalstrict:true, devel:true, newcap:false */
/*global require, module, exports, document, window */
"use strict";
var Marty = require('marty');
var NavigationConstants = require('./navigationConstants');
function navigateTo(route, params) {
// avoid cyclical import
var Router = require('../router');
Router.transitionTo(route, params || {});
}
var NavigationActionCreators = Marty.createActionCreators({
// These trigger Router actions, which in turn trigger the NAVIGATE action.
navigateHome: function() {
navigateTo('home');
},
navigateToInstance: function(id) {
navigateTo('instance', {instanceId: id});
},
navigateToAnalysis: function(instanceId, id) {
navigateTo('analysis', {instanceId: instanceId, analysisId: id});
},
routerNavigate: NavigationConstants.NAVIGATE(function(handler, state) {
this.dispatch({
path: state.path,
pathName: state.pathname,
queryString: state.query,
params: state.params,
routes: state.routes.map(r => r.name)
});
}),
});
module.exports = NavigationActionCreators;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment