UNPKG

@inspectph/react-easy-router

Version:

A simple React router wrapper with protected routes, role-based access, and layout support for React apps.

2 lines (1 loc) 1.47 kB
"use strict";var x=Object.create;var R=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var b=(e,t)=>{for(var o in t)R(e,o,{get:t[o],enumerable:!0})},l=(e,t,o,u)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of C(t))!A.call(e,r)&&r!==o&&R(e,r,{get:()=>t[r],enumerable:!(u=y(t,r))||u.enumerable});return e};var m=(e,t,o)=>(o=e!=null?x(w(e)):{},l(t||!e||!e.__esModule?R(o,"default",{value:e,enumerable:!0}):o,e)),k=e=>l(R({},"__esModule",{value:!0}),e);var N={};b(N,{ProtectedRoute:()=>n,RouterProvider:()=>P});module.exports=k(N);var s=m(require("react")),c=require("react-router-dom"),B=({isAuthenticated:e,userRole:t,allowedRoles:o,redirectTo:u,children:r})=>e?o&&!o.includes(t||"")?s.createElement(c.Navigate,{to:u,replace:!0}):s.createElement(s.Fragment,null,r):s.createElement(c.Navigate,{to:u,replace:!0}),n=B;var i=m(require("react")),a=require("react-router-dom");var F=({routes:e,isAuthenticated:t,userRole:o})=>i.createElement(a.BrowserRouter,null,i.createElement(a.Routes,null,e.map(({path:u,element:r,protected:g,roles:h,redirectTo:v,layout:d},p)=>{let f=d?i.createElement(d,null,r):r;return g?i.createElement(a.Route,{key:p,path:u,element:i.createElement(n,{isAuthenticated:t,userRole:o,allowedRoles:h,redirectTo:v||"/login"},f)}):i.createElement(a.Route,{key:p,path:u,element:f})}))),P=F;0&&(module.exports={ProtectedRoute,RouterProvider});