randytarampi/me

View on GitHub
packages/jsx/src/lib/clientReduxRouterRoot.jsx

Summary

Maintainability
A
35 mins
Test Coverage
A
100%
import {config as metricsConfig} from "@randy.tarampi/redux-metrics";
import {ConnectedRouter} from "connected-react-router/immutable";
import PropTypes from "prop-types";
import React from "react";
import {metrics} from "react-metrics";
import {renderRoutes} from "react-router-config";
import ClientReduxRoot from "./clientReduxRoot";
import {ConnectedErrorWrapper} from "./containers/error";

export const ClientReduxRouterRoot = ({store, routes, history, ...props}) => {
    return <ClientReduxRoot store={store} {...props}>
        <ConnectedErrorWrapper {...props}>
            <ConnectedRouter history={history}>
                {renderRoutes(routes, props)}
            </ConnectedRouter>
        </ConnectedErrorWrapper>
    </ClientReduxRoot>;
};

ClientReduxRouterRoot.propTypes = {
    store: PropTypes.object.isRequired,
    routes: PropTypes.array.isRequired,
    history: PropTypes.object.isRequired
};

export default metrics(metricsConfig)(ClientReduxRouterRoot);