UNPKG

@casl/react

Version:

React component for CASL which makes it easy to add permissions in any React application

3 lines (2 loc) 2.33 kB
import t,{PureComponent as n,createElement as r}from"react";function i(t,n){for(var r=0;r<n.length;r++){var i=n[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,a(i.key),i)}}function u(t,n,r){return n&&i(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function e(){return e=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var i in r)({}).hasOwnProperty.call(r,i)&&(t[i]=r[i])}return t},e.apply(null,arguments)}function o(t,n){t.prototype=Object.create(n.prototype),t.prototype.constructor=t,f(t,n)}function f(t,n){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},f(t,n)}function c(t,n){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var i=r.call(t,n);if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}function a(t){var n=c(t,"string");return"symbol"==typeof n?n:n+""}var s=function t(){};var v=function(t){function n(){var n;for(var r=arguments.length,i=new Array(r),u=0;u<r;u++)i[u]=arguments[u];n=t.call.apply(t,[this].concat(i))||this;n.i=false;n.u=null;n.o=s;n.state={t:true};return n}o(n,t);var r=n.prototype;r.componentWillUnmount=function t(){this.o()};r.v=function _connectToAbility(t){var n=this;if(t===this.u)return;this.o();this.u=null;if(t){this.u=t;this.o=t.on("updated",(function(){return n.setState({t:!n.state.t})}))}};r.h=function t(){var n=this.props;var r=n.of||n.a||n.an||n.this||n.on;var i=n.not?"cannot":"can";return n.ability[i](n.I||n.do,r,n.field)};r.render=function t(){this.v(this.props.ability);this.i=this.h();return this.props.passThrough||this.i?this.l():null};r.l=function t(){var n=this.props,r=n.children,i=n.ability;var u=typeof r==="function"?r(this.i,i):r;return u};return u(n,[{key:"allowed",get:function t(){return this.i}}])}(n);function h(t){return function(n){return r(t,{children:function t(i){return r(v,e({},n,{ability:n.ability||i}))}})}}function useAbility(n){var r=t.useContext(n);var i=t.useState(),u=i[0],e=i[1];t.useEffect((function(){return r.on("updated",(function(t){if(t.rules!==u)e(t.rules)}))}),[]);return r}export{v as Can,h as createContextualCan,useAbility}; //# sourceMappingURL=index.js.map