{"ast":null,"code":"import React from'react';import{BrowserRouter,Routes,Route,Navigate}from'react-router-dom';import{AuthProvider,useAuth}from'./contexts/AuthContext';import MainLayout from'./components/Layout';import Login from'./pages/Login';import Dashboard from'./pages/Dashboard';import Projects from'./pages/Projects';import ProjectDetail from'./pages/ProjectDetail';import Investors from'./pages/Investors';import InvestorDetail from'./pages/InvestorDetail';import Users from'./pages/Users';import News from'./pages/News';import Notifications from'./pages/Notifications';import Activity from'./pages/Activity';import CandidateProjects from'./pages/CandidateProjects';import Knowledge from'./pages/Knowledge';import IncubationManagement from'./pages/IncubationManagement';import IncubationProjectDetail from'./pages/IncubationProjectDetail';import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";const ProtectedRoute=_ref=>{let{children,roles}=_ref;const{user,loading}=useAuth();if(loading){return/*#__PURE__*/_jsx(\"div\",{children:\"\\u52A0\\u8F7D\\u4E2D...\"});}if(!user){return/*#__PURE__*/_jsx(Navigate,{to:\"/login\",replace:true});}if(roles&&roles.length>0){if(user.role!=='admin'&&!roles.includes(user.role)){return/*#__PURE__*/_jsx(Navigate,{to:\"/\",replace:true});}}return children;};const AppRoutes=()=>{const{user,loading}=useAuth();if(loading){return/*#__PURE__*/_jsx(\"div\",{children:\"\\u52A0\\u8F7D\\u4E2D...\"});}return/*#__PURE__*/_jsxs(Routes,{children:[/*#__PURE__*/_jsx(Route,{path:\"/login\",element:user?/*#__PURE__*/_jsx(Navigate,{to:\"/\",replace:true}):/*#__PURE__*/_jsx(Login,{})}),/*#__PURE__*/_jsxs(Route,{path:\"/\",element:/*#__PURE__*/_jsx(ProtectedRoute,{children:/*#__PURE__*/_jsx(MainLayout,{})}),children:[/*#__PURE__*/_jsx(Route,{index:true,element:/*#__PURE__*/_jsx(Dashboard,{})}),/*#__PURE__*/_jsx(Route,{path:\"candidate-projects\",element:/*#__PURE__*/_jsx(CandidateProjects,{})}),/*#__PURE__*/_jsx(Route,{path:\"projects\",element:/*#__PURE__*/_jsx(Projects,{})}),/*#__PURE__*/_jsx(Route,{path:\"projects/:id\",element:/*#__PURE__*/_jsx(ProjectDetail,{})}),/*#__PURE__*/_jsx(Route,{path:\"investors\",element:/*#__PURE__*/_jsx(Investors,{})}),/*#__PURE__*/_jsx(Route,{path:\"investors/:id\",element:/*#__PURE__*/_jsx(InvestorDetail,{})}),/*#__PURE__*/_jsx(Route,{path:\"knowledge\",element:/*#__PURE__*/_jsx(Knowledge,{})}),/*#__PURE__*/_jsx(Route,{path:\"incubation\",element:/*#__PURE__*/_jsx(IncubationManagement,{})}),/*#__PURE__*/_jsx(Route,{path:\"incubation-projects/:id\",element:/*#__PURE__*/_jsx(IncubationProjectDetail,{})}),/*#__PURE__*/_jsx(Route,{path:\"news\",element:/*#__PURE__*/_jsx(News,{})}),/*#__PURE__*/_jsx(Route,{path:\"notifications\",element:/*#__PURE__*/_jsx(Notifications,{})}),/*#__PURE__*/_jsx(Route,{path:\"users\",element:/*#__PURE__*/_jsx(ProtectedRoute,{roles:['admin'],children:/*#__PURE__*/_jsx(Users,{})})}),/*#__PURE__*/_jsx(Route,{path:\"activity\",element:/*#__PURE__*/_jsx(ProtectedRoute,{roles:['admin'],children:/*#__PURE__*/_jsx(Activity,{})})}),/*#__PURE__*/_jsx(Route,{path:\"*\",element:/*#__PURE__*/_jsx(Navigate,{to:\"/\",replace:true})})]})]});};const App=()=>{return/*#__PURE__*/_jsx(AuthProvider,{children:/*#__PURE__*/_jsx(BrowserRouter,{children:/*#__PURE__*/_jsx(AppRoutes,{})})});};export default App;","map":{"version":3,"names":["React","BrowserRouter","Routes","Route","Navigate","AuthProvider","useAuth","MainLayout","Login","Dashboard","Projects","ProjectDetail","Investors","InvestorDetail","Users","News","Notifications","Activity","CandidateProjects","Knowledge","IncubationManagement","IncubationProjectDetail","jsx","_jsx","jsxs","_jsxs","ProtectedRoute","_ref","children","roles","user","loading","to","replace","length","role","includes","AppRoutes","path","element","index","App"],"sources":["/Users/nili/Documents/trae_projects/client/src/App.js"],"sourcesContent":["import React from 'react';\nimport { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';\nimport { AuthProvider, useAuth } from './contexts/AuthContext';\nimport MainLayout from './components/Layout';\nimport Login from './pages/Login';\nimport Dashboard from './pages/Dashboard';\nimport Projects from './pages/Projects';\nimport ProjectDetail from './pages/ProjectDetail';\nimport Investors from './pages/Investors';\nimport InvestorDetail from './pages/InvestorDetail';\nimport Users from './pages/Users';\nimport News from './pages/News';\nimport Notifications from './pages/Notifications';\nimport Activity from './pages/Activity';\nimport CandidateProjects from './pages/CandidateProjects';\nimport Knowledge from './pages/Knowledge';\nimport IncubationManagement from './pages/IncubationManagement';\nimport IncubationProjectDetail from './pages/IncubationProjectDetail';\n\nconst ProtectedRoute = ({ children, roles }) => {\n  const { user, loading } = useAuth();\n\n  if (loading) {\n    return <div>加载中...</div>;\n  }\n\n  if (!user) {\n    return <Navigate to=\"/login\" replace />;\n  }\n\n  if (roles && roles.length > 0) {\n    if (user.role !== 'admin' && !roles.includes(user.role)) {\n      return <Navigate to=\"/\" replace />;\n    }\n  }\n\n  return children;\n};\n\nconst AppRoutes = () => {\n  const { user, loading } = useAuth();\n\n  if (loading) {\n    return <div>加载中...</div>;\n  }\n\n  return (\n    <Routes>\n      <Route path=\"/login\" element={user ? <Navigate to=\"/\" replace /> : <Login />} />\n      <Route path=\"/\" element={\n        <ProtectedRoute>\n          <MainLayout />\n        </ProtectedRoute>\n      }>\n        <Route index element={<Dashboard />} />\n        <Route path=\"candidate-projects\" element={<CandidateProjects />} />\n        <Route path=\"projects\" element={<Projects />} />\n        <Route path=\"projects/:id\" element={<ProjectDetail />} />\n        <Route path=\"investors\" element={<Investors />} />\n        <Route path=\"investors/:id\" element={<InvestorDetail />} />\n        <Route path=\"knowledge\" element={<Knowledge />} />\n        <Route path=\"incubation\" element={<IncubationManagement />} />\n        <Route path=\"incubation-projects/:id\" element={<IncubationProjectDetail />} />\n        <Route path=\"news\" element={<News />} />\n        <Route path=\"notifications\" element={<Notifications />} />\n        <Route path=\"users\" element={\n          <ProtectedRoute roles={['admin']}>\n            <Users />\n          </ProtectedRoute>\n        } />\n        <Route path=\"activity\" element={\n          <ProtectedRoute roles={['admin']}>\n            <Activity />\n          </ProtectedRoute>\n        } />\n        <Route path=\"*\" element={<Navigate to=\"/\" replace />} />\n      </Route>\n    </Routes>\n  );\n};\n\nconst App = () => {\n  return (\n    <AuthProvider>\n      <BrowserRouter>\n        <AppRoutes />\n      </BrowserRouter>\n    </AuthProvider>\n  );\n};\n\nexport default App;\n"],"mappings":"AAAA,MAAO,CAAAA,KAAK,KAAM,OAAO,CACzB,OAASC,aAAa,CAAEC,MAAM,CAAEC,KAAK,CAAEC,QAAQ,KAAQ,kBAAkB,CACzE,OAASC,YAAY,CAAEC,OAAO,KAAQ,wBAAwB,CAC9D,MAAO,CAAAC,UAAU,KAAM,qBAAqB,CAC5C,MAAO,CAAAC,KAAK,KAAM,eAAe,CACjC,MAAO,CAAAC,SAAS,KAAM,mBAAmB,CACzC,MAAO,CAAAC,QAAQ,KAAM,kBAAkB,CACvC,MAAO,CAAAC,aAAa,KAAM,uBAAuB,CACjD,MAAO,CAAAC,SAAS,KAAM,mBAAmB,CACzC,MAAO,CAAAC,cAAc,KAAM,wBAAwB,CACnD,MAAO,CAAAC,KAAK,KAAM,eAAe,CACjC,MAAO,CAAAC,IAAI,KAAM,cAAc,CAC/B,MAAO,CAAAC,aAAa,KAAM,uBAAuB,CACjD,MAAO,CAAAC,QAAQ,KAAM,kBAAkB,CACvC,MAAO,CAAAC,iBAAiB,KAAM,2BAA2B,CACzD,MAAO,CAAAC,SAAS,KAAM,mBAAmB,CACzC,MAAO,CAAAC,oBAAoB,KAAM,8BAA8B,CAC/D,MAAO,CAAAC,uBAAuB,KAAM,iCAAiC,CAAC,OAAAC,GAAA,IAAAC,IAAA,CAAAC,IAAA,IAAAC,KAAA,yBAEtE,KAAM,CAAAC,cAAc,CAAGC,IAAA,EAAyB,IAAxB,CAAEC,QAAQ,CAAEC,KAAM,CAAC,CAAAF,IAAA,CACzC,KAAM,CAAEG,IAAI,CAAEC,OAAQ,CAAC,CAAGzB,OAAO,CAAC,CAAC,CAEnC,GAAIyB,OAAO,CAAE,CACX,mBAAOR,IAAA,QAAAK,QAAA,CAAK,uBAAM,CAAK,CAAC,CAC1B,CAEA,GAAI,CAACE,IAAI,CAAE,CACT,mBAAOP,IAAA,CAACnB,QAAQ,EAAC4B,EAAE,CAAC,QAAQ,CAACC,OAAO,MAAE,CAAC,CACzC,CAEA,GAAIJ,KAAK,EAAIA,KAAK,CAACK,MAAM,CAAG,CAAC,CAAE,CAC7B,GAAIJ,IAAI,CAACK,IAAI,GAAK,OAAO,EAAI,CAACN,KAAK,CAACO,QAAQ,CAACN,IAAI,CAACK,IAAI,CAAC,CAAE,CACvD,mBAAOZ,IAAA,CAACnB,QAAQ,EAAC4B,EAAE,CAAC,GAAG,CAACC,OAAO,MAAE,CAAC,CACpC,CACF,CAEA,MAAO,CAAAL,QAAQ,CACjB,CAAC,CAED,KAAM,CAAAS,SAAS,CAAGA,CAAA,GAAM,CACtB,KAAM,CAAEP,IAAI,CAAEC,OAAQ,CAAC,CAAGzB,OAAO,CAAC,CAAC,CAEnC,GAAIyB,OAAO,CAAE,CACX,mBAAOR,IAAA,QAAAK,QAAA,CAAK,uBAAM,CAAK,CAAC,CAC1B,CAEA,mBACEH,KAAA,CAACvB,MAAM,EAAA0B,QAAA,eACLL,IAAA,CAACpB,KAAK,EAACmC,IAAI,CAAC,QAAQ,CAACC,OAAO,CAAET,IAAI,cAAGP,IAAA,CAACnB,QAAQ,EAAC4B,EAAE,CAAC,GAAG,CAACC,OAAO,MAAE,CAAC,cAAGV,IAAA,CAACf,KAAK,GAAE,CAAE,CAAE,CAAC,cAChFiB,KAAA,CAACtB,KAAK,EAACmC,IAAI,CAAC,GAAG,CAACC,OAAO,cACrBhB,IAAA,CAACG,cAAc,EAAAE,QAAA,cACbL,IAAA,CAAChB,UAAU,GAAE,CAAC,CACA,CACjB,CAAAqB,QAAA,eACCL,IAAA,CAACpB,KAAK,EAACqC,KAAK,MAACD,OAAO,cAAEhB,IAAA,CAACd,SAAS,GAAE,CAAE,CAAE,CAAC,cACvCc,IAAA,CAACpB,KAAK,EAACmC,IAAI,CAAC,oBAAoB,CAACC,OAAO,cAAEhB,IAAA,CAACL,iBAAiB,GAAE,CAAE,CAAE,CAAC,cACnEK,IAAA,CAACpB,KAAK,EAACmC,IAAI,CAAC,UAAU,CAACC,OAAO,cAAEhB,IAAA,CAACb,QAAQ,GAAE,CAAE,CAAE,CAAC,cAChDa,IAAA,CAACpB,KAAK,EAACmC,IAAI,CAAC,cAAc,CAACC,OAAO,cAAEhB,IAAA,CAACZ,aAAa,GAAE,CAAE,CAAE,CAAC,cACzDY,IAAA,CAACpB,KAAK,EAACmC,IAAI,CAAC,WAAW,CAACC,OAAO,cAAEhB,IAAA,CAACX,SAAS,GAAE,CAAE,CAAE,CAAC,cAClDW,IAAA,CAACpB,KAAK,EAACmC,IAAI,CAAC,eAAe,CAACC,OAAO,cAAEhB,IAAA,CAACV,cAAc,GAAE,CAAE,CAAE,CAAC,cAC3DU,IAAA,CAACpB,KAAK,EAACmC,IAAI,CAAC,WAAW,CAACC,OAAO,cAAEhB,IAAA,CAACJ,SAAS,GAAE,CAAE,CAAE,CAAC,cAClDI,IAAA,CAACpB,KAAK,EAACmC,IAAI,CAAC,YAAY,CAACC,OAAO,cAAEhB,IAAA,CAACH,oBAAoB,GAAE,CAAE,CAAE,CAAC,cAC9DG,IAAA,CAACpB,KAAK,EAACmC,IAAI,CAAC,yBAAyB,CAACC,OAAO,cAAEhB,IAAA,CAACF,uBAAuB,GAAE,CAAE,CAAE,CAAC,cAC9EE,IAAA,CAACpB,KAAK,EAACmC,IAAI,CAAC,MAAM,CAACC,OAAO,cAAEhB,IAAA,CAACR,IAAI,GAAE,CAAE,CAAE,CAAC,cACxCQ,IAAA,CAACpB,KAAK,EAACmC,IAAI,CAAC,eAAe,CAACC,OAAO,cAAEhB,IAAA,CAACP,aAAa,GAAE,CAAE,CAAE,CAAC,cAC1DO,IAAA,CAACpB,KAAK,EAACmC,IAAI,CAAC,OAAO,CAACC,OAAO,cACzBhB,IAAA,CAACG,cAAc,EAACG,KAAK,CAAE,CAAC,OAAO,CAAE,CAAAD,QAAA,cAC/BL,IAAA,CAACT,KAAK,GAAE,CAAC,CACK,CACjB,CAAE,CAAC,cACJS,IAAA,CAACpB,KAAK,EAACmC,IAAI,CAAC,UAAU,CAACC,OAAO,cAC5BhB,IAAA,CAACG,cAAc,EAACG,KAAK,CAAE,CAAC,OAAO,CAAE,CAAAD,QAAA,cAC/BL,IAAA,CAACN,QAAQ,GAAE,CAAC,CACE,CACjB,CAAE,CAAC,cACJM,IAAA,CAACpB,KAAK,EAACmC,IAAI,CAAC,GAAG,CAACC,OAAO,cAAEhB,IAAA,CAACnB,QAAQ,EAAC4B,EAAE,CAAC,GAAG,CAACC,OAAO,MAAE,CAAE,CAAE,CAAC,EACnD,CAAC,EACF,CAAC,CAEb,CAAC,CAED,KAAM,CAAAQ,GAAG,CAAGA,CAAA,GAAM,CAChB,mBACElB,IAAA,CAAClB,YAAY,EAAAuB,QAAA,cACXL,IAAA,CAACtB,aAAa,EAAA2B,QAAA,cACZL,IAAA,CAACc,SAAS,GAAE,CAAC,CACA,CAAC,CACJ,CAAC,CAEnB,CAAC,CAED,cAAe,CAAAI,GAAG","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}