{"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\User\\\\Downloads\\\\medora5\\\\frontend\\\\src\\\\components\\\\ProtectedRoute.js\";\nimport React from 'react';\nimport { Navigate } from 'react-router-dom';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nfunction ProtectedRoute({\n  children,\n  requiredRoles = []\n}) {\n  const token = localStorage.getItem('token');\n  const userStr = localStorage.getItem('user');\n\n  // If no token, redirect to login\n  if (!token) {\n    return /*#__PURE__*/_jsxDEV(Navigate, {\n      to: \"/login\",\n      replace: true\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 11,\n      columnNumber: 12\n    }, this);\n  }\n\n  // If roles are specified and user's role is not in the list, redirect to dashboard\n  if (requiredRoles.length > 0 && userStr) {\n    const user = JSON.parse(userStr);\n    if (!requiredRoles.includes(user.role)) {\n      return /*#__PURE__*/_jsxDEV(Navigate, {\n        to: \"/\",\n        replace: true\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 18,\n        columnNumber: 14\n      }, this);\n    }\n  }\n  return children;\n}\n_c = ProtectedRoute;\nexport default ProtectedRoute;\nvar _c;\n$RefreshReg$(_c, \"ProtectedRoute\");","map":{"version":3,"names":["React","Navigate","jsxDEV","_jsxDEV","ProtectedRoute","children","requiredRoles","token","localStorage","getItem","userStr","to","replace","fileName","_jsxFileName","lineNumber","columnNumber","length","user","JSON","parse","includes","role","_c","$RefreshReg$"],"sources":["C:/Users/User/Downloads/medora5/frontend/src/components/ProtectedRoute.js"],"sourcesContent":["\nimport React from 'react';\nimport { Navigate } from 'react-router-dom';\n\nfunction ProtectedRoute({ children, requiredRoles = [] }) {\n  const token = localStorage.getItem('token');\n  const userStr = localStorage.getItem('user');\n\n  // If no token, redirect to login\n  if (!token) {\n    return <Navigate to=\"/login\" replace />;\n  }\n\n  // If roles are specified and user's role is not in the list, redirect to dashboard\n  if (requiredRoles.length > 0 && userStr) {\n    const user = JSON.parse(userStr);\n    if (!requiredRoles.includes(user.role)) {\n      return <Navigate to=\"/\" replace />;\n    }\n  }\n\n  return children;\n}\n\nexport default ProtectedRoute;\n"],"mappings":";AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,kBAAkB;AAAC,SAAAC,MAAA,IAAAC,OAAA;AAE5C,SAASC,cAAcA,CAAC;EAAEC,QAAQ;EAAEC,aAAa,GAAG;AAAG,CAAC,EAAE;EACxD,MAAMC,KAAK,GAAGC,YAAY,CAACC,OAAO,CAAC,OAAO,CAAC;EAC3C,MAAMC,OAAO,GAAGF,YAAY,CAACC,OAAO,CAAC,MAAM,CAAC;;EAE5C;EACA,IAAI,CAACF,KAAK,EAAE;IACV,oBAAOJ,OAAA,CAACF,QAAQ;MAACU,EAAE,EAAC,QAAQ;MAACC,OAAO;IAAA;MAAAC,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OAAE,CAAC;EACzC;;EAEA;EACA,IAAIV,aAAa,CAACW,MAAM,GAAG,CAAC,IAAIP,OAAO,EAAE;IACvC,MAAMQ,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACV,OAAO,CAAC;IAChC,IAAI,CAACJ,aAAa,CAACe,QAAQ,CAACH,IAAI,CAACI,IAAI,CAAC,EAAE;MACtC,oBAAOnB,OAAA,CAACF,QAAQ;QAACU,EAAE,EAAC,GAAG;QAACC,OAAO;MAAA;QAAAC,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAAE,CAAC;IACpC;EACF;EAEA,OAAOX,QAAQ;AACjB;AAACkB,EAAA,GAlBQnB,cAAc;AAoBvB,eAAeA,cAAc;AAAC,IAAAmB,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}