return createStore => (reducer, initialState) => {

    let baseCreateHistory;
    if (typeof createHistory === 'function') {
      baseCreateHistory = createHistory;
    } else if (createHistory) {
      baseCreateHistory = () => createHistory;
    }

    const createAppHistory = useRouterHistory(baseCreateHistory);

    const history = createAppHistory({
      parseQueryString,
      stringifyQueryString: stringifyQuery,
    });

    const transitionManager = createTransitionManager(
        history, createRoutes(routes || children)
    );

    const store =
      applyMiddleware(
        historyMiddleware(history)
      )(createStore)(reducer, initialState);

    store.transitionManager = transitionManager;
    store.history = history;
    store[ROUTER_STATE_SELECTOR] = routerStateSelector;

    return store;
  };
Beispiel #2
0
            connectContainer: (reactContainer) => {
                store.warnIfStoreCreationNotComplete();

                const routes = createRoutes(getRoutes(store._finalStoreInstance))
                return store._connectWithStore(
                    <Router
                        routes={routes}
                        history={history}
                        render={(props) => React.cloneElement(reactContainer, props)}
                    />
                );
            },
export function getRoutes() {
    return createRoutes(
        <Route
            component={TaxCalculatorView}
            path='tax-calculator'
        >
            <Route
                component={CalculationControls}
                path=':province'
            />
        </Route>
    );
}
Beispiel #4
0
  constructor(props: Props) {
    super(props);

    this.state = {
      location: null,
      routes: null,
      params: null,
      components: null,
      navigationState: null,
    };

    const { routes, children } = props;

    this.routes = createRoutes(routes || children);
  }
function getRoutesAndStore(routes, req) {
    routes = reactRouter.createRoutes(routes);
    const routeComponents = getCurrentRouteComponents(routes, req.url);
    const dataLoaders = getDataLoaders(routeComponents);
    const promises = getPromisesFromDataLoaders(dataLoaders, req);

    return Promise.all(promises)
        .then(data => {
            const state = _.reduce(data, _.merge);
            const store = createStore(rootReducer, state);
            return store;
        })
        .then(store => {
            routes = extendOnEnterHooksOnRoutes(routes, store);
            return {
                routes,
                store
            };
        });
}
        function replaceRoutes(r, isInit) {
          childRoutes = _reactRouter.createRoutes(r);

          var routerState = routerStateSelector(store.getState());
          if (routerState && !isInit) {
            var _routerState$location = routerState.location;
            var state = _routerState$location.state;
            var pathname = _routerState$location.pathname;
            var query = _routerState$location.query;

            store.history.replace({ state: state, pathname: pathname, query: query });
          }

          if (!areChildRoutesResolved) {
            areChildRoutesResolved = true;
            childRoutesCallbacks.forEach(function (cb) {
              return cb(null, childRoutes);
            });
          }
        }
Beispiel #7
0
export default (store) => {
  const refreshToken = (nextState, replace, cb) => {
    const user = store.getState().user;
    if (user && canUseDOM) {
      refresh().then(() => {
        setInterval(refresh, 3600000); // refresh every hour
        cb();
      });
    } else {
      cb();
    }
  };
  const requireLogin = (nextState, replace, cb) => {
    const user = store.getState().user;
    if (!user) {
      // oops not logged in, so can't be here!
      replace('/');
    }
    cb();
  };
  const prepareParamsWithUser = (cb) => {
    return (params, state) => {
      const user = store.getState().user;
      const orig = cb ? cb(params, state) : {};
      return { ...params, ...orig, loggedIn: !!user };
    };
  };
  // routes
  return createRoutes(
    <Route path="/" component={App} onEnter={refreshToken}>
      <Route
        component={Navigator}
        queries={viewerQuery}
        prepareParams={prepareParamsWithUser()}
      >
        <IndexRoute component={Home} />
      </Route>
    </Route>
  );
};
    return function (reducer, initialState) {

      var baseCreateHistory = undefined;
      if (typeof createHistory === 'function') {
        baseCreateHistory = createHistory;
      } else if (createHistory) {
        baseCreateHistory = function () {
          return createHistory;
        };
      }

      var createAppHistory = _reactRouter.useRouterHistory(baseCreateHistory);

      var history = createAppHistory({
        parseQueryString: parseQueryString,
        stringifyQuery: stringifyQuery
      });

      var transitionManager = _reactRouterLibCreateTransitionManager2['default'](history, _reactRouter.createRoutes(routes));

      var store = _redux.applyMiddleware(_historyMiddleware2['default'](history))(createStore)(reducer, initialState);

      store.transitionManager = transitionManager;
      store.history = history;
      store[_constants.ROUTER_STATE_SELECTOR] = routerStateSelector;

      return store;
    };
import React from 'react';
import { createRoutes, IndexRoute, Route } from 'react-router';
import Relay from 'react-relay';

import TodoApp from './screens/TodoApp';
import TodoList from './screens/TodoApp/screens/TodoList';

const prepareParams = ({ status }) => ({
  status: ['active', 'completed'].includes(status) ? status : 'any',
});

const queries = {
  viewer: () => Relay.QL`query { viewer }`,
};

export default createRoutes(
  <Route path="/" component={TodoApp} queries={queries}>
    <IndexRoute component={TodoList} prepareParams={prepareParams} queries={queries} />
    <Route path=":status" component={TodoList} prepareParams={prepareParams} queries={queries} />
  </Route>
);
var ReactRouter = require("react-router");
var Registry = require("../../assets/core/stores/registry");
var Router = require("../../assets/core/stores/router");
var Context = require("../../assets/core/stores/context");

var util = require("util");

module.exports = {
  //should be initialized by bootstrap
  routeConfig: null,
  loaders: {},

  init() {
    //RouterService.routeConfig = RouterService.pageRoutesToReact(sails.config.platform.pageRoutes);
    RouterService.routeConfig = Router.getCompiledRoutes();
    ReactRouter.createRoutes(RouterService.routeConfig);

    _.extend(sails.config.routes, RouterService.pageRoutesToSails(sails.config.platform.pageRoutes));
  },

  pageRoutesToSails(pageRoutes) {
    return _.mapValues(pageRoutes, (value, key) => "page.serve");
  },

  pageRoutesToReact(pageRoutes) {
    return _.map(_.keys(pageRoutes), key => {
      var route = pageRoutes[key];
      if ("string" === typeof route) {
        route = {
          path: key,
          component: route
Beispiel #11
0
/* @flow weak */

import React from 'react';
import { createRoutes, IndexRoute, Route } from 'react-router';
//import Relay from 'react-relay';

import Chrome from '../../webapp/components/Chrome';
import HomeScreen from './components/HomeScreen';
import MUI_Icons from '../../units/urb-example-mui/webapp/components/MUI_Icons';
import MUI_Icons_CountryFlags from '../../units/urb-example-mui/webapp/components/MUI_Icons_CountryFlags';
import MUI_Icons_CreditCards from '../../units/urb-example-mui/webapp/components/MUI_Icons_CreditCards';
import MUI_Home from '../../units/urb-example-mui/webapp/components/MUI_Home';

export const queries = {
};

export default createRoutes(
  <Route path="/" component={Chrome} queries={queries}>
    <IndexRoute component={HomeScreen} queries={queries} />
		<Route path="mui">
			<IndexRoute component={MUI_Home} queries={queries} />
			<Route path="icons" component={MUI_Icons} queries={queries} />
			<Route path="icons_country_flags" component={MUI_Icons_CountryFlags} queries={queries} />
			<Route path="icons_credit_cards" component={MUI_Icons_CreditCards} queries={queries} />
		</Route>
  </Route>
);
Beispiel #12
0
      return React.createElement(...args);
    });
  },

  /**
   * Builds a route array that react router can use,
   * with the correct configuration.
   *
   * @param  {Array} originalRoutes Original Route configuration
   * @return {Array} Routes ready to use by react router
   */
  buildRoutes(originalRoutes) {
    const elementRoutes = RouterUtil.createComponentsFromRoutes(originalRoutes);

    return createRoutes(elementRoutes);
  },

  /**
   * Checks if a page should hide the header navigation tabs
   * @param  {Array} routes instance of react-router
   * @return {Bool} should hide Page Navigation
   */
  shouldHideNavigation(routes) {
    return !!routes[routes.length - 1].hideHeaderNavigation;
  },

  /**
   * Builds absolute path from routes array
   * React router v2.8.1 provides routes prop to a component that bound to a <Route />
   * this.props.routes contains a plain list of all routes React router hits.
export default createRoutes(
  <Route path="/" component={Chrome} queries={queries}>
    <IndexRoute component={HomeScreen} queries={queries} />
    <Route path="Compendiums">
      <IndexRoute component={Compendium} queries={queries} />
    </Route>
    <Route path="Ensayos" component={Ensayo_Screen} queries={queries}>
      <IndexRoute component={Ensayo_List} queries={queries} />
    </Route>
    <Route path="Ensayo_PublicListing">
      <IndexRoute component={Ensayo_PublicListing} queries={queries} />
      <Route path=":id" component={Ensayo_PublicItem} queries={queries} />
    </Route>
    <Route path="ForceLogin">
      <IndexRoute component={ForceLogin} queries={queries} />
    </Route>
    <Route path="mui">
      <IndexRoute component={MUI_Home} queries={queries} />
      <Route path="icons" component={MUI_Icons} queries={queries} />
      <Route path="icons_country_flags" component={MUI_Icons_CountryFlags} queries={queries} />
      <Route path="icons_credit_cards" component={MUI_Icons_CreditCards} queries={queries} />
    </Route>
    <Route path="Translaticiarums" component={Translaticiarum_Screen} queries={queries}>
      <IndexRoute component={Translaticiarum_List} queries={queries} />
    </Route>
    <Route path="TranslaticiarumsGrid" component={Translaticiarum_Grid} queries={queries}/>
    <Route path="User">
      <IndexRoute component={User_Properties} queries={queries} />
      <Route path="UpdatePassword" component={User_UpdatePassword} queries={queries} />
    </Route>
    <Route path="ToDos" component={ToDo_Screen} queries={queries}>
      <IndexRoute component={ToDo_List} queries={queries} prepareParams={ () => ({status: 'any'}) }/>
      <Route path=":status" component={ToDo_List} queries={queries} />
    </Route>
  </Route>
);
Beispiel #14
0
      return function (reducer, initialState) {
        var baseRoutes = options.routes;
        var getRoutes = options.getRoutes;
        var routerStateSelector = options.routerStateSelector;

        var store = undefined;

        var childRoutes = [];
        var areChildRoutesResolved = false;
        var childRoutesCallbacks = [];

        function replaceRoutes(r, isInit) {
          childRoutes = _reactRouter.createRoutes(r);

          var routerState = routerStateSelector(store.getState());
          if (routerState && !isInit) {
            var _routerState$location = routerState.location;
            var state = _routerState$location.state;
            var pathname = _routerState$location.pathname;
            var query = _routerState$location.query;

            store.history.replace({ state: state, pathname: pathname, query: query });
          }

          if (!areChildRoutesResolved) {
            areChildRoutesResolved = true;
            childRoutesCallbacks.forEach(function (cb) {
              return cb(null, childRoutes);
            });
          }
        }

        var routes = undefined;
        if (baseRoutes) {
          routes = baseRoutes;
        } else if (getRoutes) {
          routes = getRoutes({
            dispatch: function dispatch(action) {
              return store.dispatch(action);
            },
            getState: function getState() {
              return store.getState();
            }
          });
        } else {
          routes = [{
            getChildRoutes: function getChildRoutes(location, cb) {
              if (!areChildRoutesResolved) {
                childRoutesCallbacks.push(cb);
                return;
              }

              cb(null, childRoutes);
            }
          }];
        }

        store = _redux.compose(_redux.applyMiddleware(_replaceRoutesMiddleware2['default'](replaceRoutes)), next(_extends({}, options, {
          routes: _reactRouter.createRoutes(routes)
        })))(createStore)(reducer, initialState);

        return store;
      };