UNPKG

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
"use strict"; 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;