UNPKG

@randy.tarampi/jsx

Version:

Some common JSX components for www.randytarampi.ca

48 lines (43 loc) 2.76 kB
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } import { config as metricsConfig } from "@randy.tarampi/redux-metrics"; import { ConnectedRouter } from "connected-react-router/immutable"; import PropTypes from "prop-types"; import React, { Fragment } from "react"; import { metrics } from "react-metrics"; import { Provider } from "react-redux"; import { ClientRoot } from "./clientRoot"; import { ConnectedErrorWrapper } from "./containers/error"; import ConnectedSwipeableTabs from "./containers/swipeableTabs"; import { renderSwipeableRoutes } from "./util"; export class ClientSwipeableReduxRouterRoot extends ClientRoot { render() { var _this$props = this.props, { store, history, routes, swipeableRoutesProps } = _this$props, props = _objectWithoutProperties(_this$props, ["store", "history", "routes", "swipeableRoutesProps"]); // eslint-disable-line no-unused-vars return /*#__PURE__*/React.createElement(Provider, { store: store }, /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("header", { className: "nav-header nav-header__tabs nav-header__swipeable" }, /*#__PURE__*/React.createElement("div", { className: "nav-container" }, /*#__PURE__*/React.createElement(ConnectedSwipeableTabs, { id: "swipeable-nav-tabs", className: "nav-tabs nav-tabs__swipeable" }, routes.filter(route => !!route.tab).map(route => route.tab)))), /*#__PURE__*/React.createElement("main", null, /*#__PURE__*/React.createElement(ConnectedErrorWrapper, props, /*#__PURE__*/React.createElement(ConnectedRouter, { history: history }, renderSwipeableRoutes(routes, props, swipeableRoutesProps)))))); } } ClientSwipeableReduxRouterRoot.propTypes = { store: PropTypes.object.isRequired, history: PropTypes.object.isRequired, swipeableRoutesProps: PropTypes.object, routes: PropTypes.array.isRequired }; export default metrics(metricsConfig)(ClientSwipeableReduxRouterRoot);