UNPKG

@ra-libs/react-rbac

Version:

React admin RBAC front components and utils

26 lines 1.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CASLProvider = CASLProvider; const tslib_1 = require("tslib"); const ability_1 = require("@casl/ability"); const react_1 = tslib_1.__importStar(require("react")); const Ability_1 = require("./Ability"); const Can_1 = require("./Can"); const CASLContext_1 = require("./CASLContext"); const utils_1 = require("./utils"); function CASLProvider(props) { const { children } = props; const [permissions, setPermissions] = (0, react_1.useState)([]); const [rules, setRules] = (0, react_1.useState)([]); const [ability, setAbility] = (0, react_1.useState)(new ability_1.Ability()); (0, react_1.useEffect)(() => { const rules = (0, utils_1.createRules)(permissions); setRules(rules); }, [permissions]); (0, react_1.useEffect)(() => { setAbility((0, utils_1.createAbility)(rules)); }, [rules]); return (react_1.default.createElement(CASLContext_1.CASLContext.Provider, { value: { ability, setPermissions, permissions, Can: Can_1.Can } }, react_1.default.createElement(Ability_1.AbilityProvider, null, children))); } //# sourceMappingURL=CASLProvider.js.map