@kinde-oss/kinde-auth-react
Version:
Kinde React SDK for authentication
2 lines (1 loc) • 2.08 kB
JavaScript
;var R=Object.create;var p=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var b=(e,s,n,o)=>{if(s&&typeof s=="object"||typeof s=="function")for(let r of v(s))!A.call(e,r)&&r!==n&&p(e,r,{get:()=>s[r],enumerable:!(o=m(s,r))||o.enumerable});return e};var S=(e,s,n)=>(n=e!=null?R(y(e)):{},b(s||!e||!e.__esModule?p(n,"default",{value:e,enumerable:!0}):n,e));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),i=require("react"),q=require("./useKindeAuth-BD1u4rmN.cjs"),L=require("./index-D_oWPEME.cjs");function P({children:e}){return t.jsxs("div",{style:{padding:"20px",textAlign:"center",color:"#666",fontFamily:"system-ui, -apple-system, sans-serif"},children:[t.jsx("h3",{children:"Protected Route"}),t.jsx("p",{children:"This component requires react-router-dom to be installed."}),t.jsxs("p",{children:["Please install it: ",t.jsx("code",{children:"npm install react-router-dom"})]}),t.jsx("div",{style:{marginTop:"20px",padding:"10px",border:"1px solid #ddd",borderRadius:"4px"},children:e})]})}function k({children:e,has:s,fallbackPath:n="/"}){const{isLoading:o,isAuthenticated:r}=q.useKindeAuth(),[g,u]=i.useState(!1),[d,l]=i.useState(null),[a,h]=i.useState(null),[f,x]=i.useState(null);return i.useEffect(()=>{(async()=>{try{const{Navigate:c}=await import("react-router-dom");h(()=>c),x(!0)}catch{console.warn("react-router-dom is not available. ProtectedRoute will render a fallback."),x(!1)}})()},[]),i.useEffect(()=>{r&&(async()=>{if(!s){l(!0);return}u(!0);try{const c=await L.Pe(s);l(c)}catch(c){console.error("Access check failed:",c),l(!1)}finally{u(!1)}})()},[s,r]),f===null||o||g?t.jsx("div",{children:"Loading..."}):f===!1?t.jsx(P,{children:e}):r?d===!1?a?t.jsx(a,{to:n,replace:!0}):t.jsx("div",{children:"Redirecting..."}):d===null?t.jsx("div",{children:"Loading..."}):t.jsx(t.Fragment,{children:e}):a?t.jsx(a,{to:n,replace:!0}):t.jsx("div",{children:"Redirecting..."})}exports.ProtectedRoute=k;