UNPKG

@r3l/app

Version:
53 lines (41 loc) 1.45 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _reactRedux = require("react-redux"); var _reactRouterDom = require("react-router-dom"); var _reactRouter = require("react-router"); var withAuth = function withAuth(Component, role) { var AuthComponent = function AuthComponent(props) { var authenticated = props.authenticated; if (role && props.user) { if (role !== props.user.role) authenticated = false; } return authenticated ? /*#__PURE__*/_react.default.createElement(Component, props) : /*#__PURE__*/_react.default.createElement(_reactRouter.Redirect, { to: { pathname: '/', state: { from: props.location } } }); }; AuthComponent.propTypes = { location: _propTypes.default.object.isRequired, authenticated: _propTypes.default.bool.isRequired, user: _propTypes.default.object }; return (0, _reactRouterDom.withRouter)((0, _reactRedux.connect)(function (state) { return { authenticated: state.auth.isAuthenticated, user: state.auth.user }; })(AuthComponent)); }; var _default = withAuth; exports.default = _default; //# sourceMappingURL=withAuth.js.map