permission-js-react
Version:
React component for permission-js which makes it easy to add permissions in any React application
3 lines (2 loc) • 832 B
JavaScript
;var e=require("react/jsx-runtime"),r=require("permission-js-core"),s=require("react");const t=s.memo;exports.factoryReactPermission=function(){const n=s.createContext(null),i=()=>{const e=s.useContext(n);if(!e)throw new Error("Use subscribing check without PermissionProvider");const{subscribe:r,update:t}=e,[,i]=s.useState(!1),o=s.useMemo((()=>r()),[r]),u=s.useCallback((()=>{i((e=>!e))}),[]);return{can:s.useCallback((e=>o({...e,signal:u})),[o,u]),update:t}},o=t((({children:e,element:r=null,...t})=>{const{can:n}=i(),o=Object.values(t);return s.useMemo((()=>n(t)),[...o,n])?e:r}));return{usePermission:i,Can:o,PermissionProvider:({children:t})=>{const[i]=s.useState((()=>r.factoryPermission())),o="function"==typeof t?t(i.update):t;return e.jsx(n.Provider,{value:i,children:o})}}};
//# sourceMappingURL=index.js.map