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) 826 B
import*as t from"react";import{Navigate as d}from"react-router-dom";var P=({isAuthenticated:i,userRole:a,allowedRoles:r,redirectTo:o,children:u})=>i?r&&!r.includes(a||"")?t.createElement(d,{to:o,replace:!0}):t.createElement(t.Fragment,null,u):t.createElement(d,{to:o,replace:!0}),s=P;import*as e from"react";import{BrowserRouter as g,Route as p,Routes as h}from"react-router-dom";var v=({routes:i,isAuthenticated:a,userRole:r})=>e.createElement(g,null,e.createElement(h,null,i.map(({path:o,element:u,protected:f,roles:l,redirectTo:m,layout:R},n)=>{let c=R?e.createElement(R,null,u):u;return f?e.createElement(p,{key:n,path:o,element:e.createElement(s,{isAuthenticated:a,userRole:r,allowedRoles:l,redirectTo:m||"/login"},c)}):e.createElement(p,{key:n,path:o,element:c})}))),x=v;export{s as ProtectedRoute,x as RouterProvider};