az-access-control
Version:
A lightweight and flexible bitmask-based role access control library for React.js apps. Control both component visibility and route-level access using a simple 2ⁿ permission model — without the hassle of writing complex permission logic.
24 lines (23 loc) • 936 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _usePermission2 = require("../hooks/usePermission");
var _reactRouterDom = require("react-router-dom");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
var ProtectedRoute = function ProtectedRoute(_ref) {
var code = _ref.code,
children = _ref.children,
_ref$redirectTo = _ref.redirectTo,
redirectTo = _ref$redirectTo === void 0 ? "/unauthorized" : _ref$redirectTo;
var _usePermission = (0, _usePermission2.usePermission)(),
hasAccess = _usePermission.hasAccess;
return hasAccess(code) ? children : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Navigate, {
to: redirectTo,
replace: true
});
};
var _default = exports["default"] = ProtectedRoute;