@r3l/app
Version:
53 lines (41 loc) • 1.45 kB
JavaScript
"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