{"ast":null,"code":"var _jsxFileName = \"D:\\\\LDT\\\\000 Project\\\\LDT\\\\Client\\\\src\\\\App.js\",\n  _s = $RefreshSig$();\nimport React, { useState, useEffect } from \"react\";\nimport { BrowserRouter as Router, Routes, Route, Navigate } from \"react-router-dom\";\nimport Header from \"./components/Header\";\nimport Login from \"./pages/Login\";\nimport Register from \"./pages/Register\";\nimport SensorList from \"./pages/SensorList\";\nimport SensorAdd from \"./pages/SensorAdd\";\nimport Admin from \"./pages/Admin\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nfunction App() {\n  _s();\n  const [user, setUser] = useState(() => {\n    const token = localStorage.getItem(\"token\");\n    const userObj = localStorage.getItem(\"user\");\n    if (token && userObj) return {\n      ...JSON.parse(userObj),\n      token\n    };\n    return null;\n  });\n  const token = user ? user.token : \"\";\n  const handleLogout = () => {\n    setUser(null);\n    localStorage.clear();\n  };\n  return /*#__PURE__*/_jsxDEV(Router, {\n    children: [/*#__PURE__*/_jsxDEV(Header, {\n      user: user,\n      onLogout: handleLogout\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 24,\n      columnNumber: 7\n    }, this), /*#__PURE__*/_jsxDEV(Routes, {\n      children: [/*#__PURE__*/_jsxDEV(Route, {\n        path: \"/\",\n        element: /*#__PURE__*/_jsxDEV(\"div\", {\n          children: \"\\uBA54\\uC778\\uD398\\uC774\\uC9C0\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 26,\n          columnNumber: 34\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 26,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(Route, {\n        path: \"/login\",\n        element: /*#__PURE__*/_jsxDEV(Login, {\n          setUser: setUser\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 27,\n          columnNumber: 39\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 27,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(Route, {\n        path: \"/register\",\n        element: /*#__PURE__*/_jsxDEV(Register, {}, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 28,\n          columnNumber: 42\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 28,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(Route, {\n        path: \"/sensor\",\n        element: user ? /*#__PURE__*/_jsxDEV(SensorList, {\n          token: token\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 29,\n          columnNumber: 47\n        }, this) : /*#__PURE__*/_jsxDEV(Navigate, {\n          to: \"/login\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 29,\n          columnNumber: 78\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 29,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(Route, {\n        path: \"/sensor/add\",\n        element: user && user.role === \"admin\" ? /*#__PURE__*/_jsxDEV(SensorAdd, {\n          token: token\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 30,\n          columnNumber: 76\n        }, this) : /*#__PURE__*/_jsxDEV(Navigate, {\n          to: \"/\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 30,\n          columnNumber: 106\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 30,\n        columnNumber: 9\n      }, this), /*#__PURE__*/_jsxDEV(Route, {\n        path: \"/admin\",\n        element: user && user.role === \"admin\" ? /*#__PURE__*/_jsxDEV(Admin, {\n          token: token\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 31,\n          columnNumber: 71\n        }, this) : /*#__PURE__*/_jsxDEV(Navigate, {\n          to: \"/\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 31,\n          columnNumber: 97\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 31,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 25,\n      columnNumber: 7\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 23,\n    columnNumber: 5\n  }, this);\n}\n_s(App, \"US02z9oZejn2BlmIM/+SB8+ww34=\");\n_c = App;\nexport default App;\nvar _c;\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["React","useState","useEffect","BrowserRouter","Router","Routes","Route","Navigate","Header","Login","Register","SensorList","SensorAdd","Admin","jsxDEV","_jsxDEV","App","_s","user","setUser","token","localStorage","getItem","userObj","JSON","parse","handleLogout","clear","children","onLogout","fileName","_jsxFileName","lineNumber","columnNumber","path","element","to","role","_c","$RefreshReg$"],"sources":["D:/LDT/000 Project/LDT/Client/src/App.js"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\r\nimport { BrowserRouter as Router, Routes, Route, Navigate } from \"react-router-dom\";\r\nimport Header from \"./components/Header\";\r\nimport Login from \"./pages/Login\";\r\nimport Register from \"./pages/Register\";\r\nimport SensorList from \"./pages/SensorList\";\r\nimport SensorAdd from \"./pages/SensorAdd\";\r\nimport Admin from \"./pages/Admin\";\r\n\r\nfunction App() {\r\n  const [user, setUser] = useState(() => {\r\n    const token = localStorage.getItem(\"token\");\r\n    const userObj = localStorage.getItem(\"user\");\r\n    if (token && userObj) return { ...JSON.parse(userObj), token };\r\n    return null;\r\n  });\r\n  const token = user ? user.token : \"\";\r\n  const handleLogout = () => {\r\n    setUser(null);\r\n    localStorage.clear();\r\n  };\r\n  return (\r\n    <Router>\r\n      <Header user={user} onLogout={handleLogout} />\r\n      <Routes>\r\n        <Route path=\"/\" element={<div>메인페이지</div>} />\r\n        <Route path=\"/login\" element={<Login setUser={setUser} />} />\r\n        <Route path=\"/register\" element={<Register />} />\r\n        <Route path=\"/sensor\" element={user ? <SensorList token={token} /> : <Navigate to=\"/login\" />} />\r\n        <Route path=\"/sensor/add\" element={user && user.role === \"admin\" ? <SensorAdd token={token} /> : <Navigate to=\"/\" />} />\r\n        <Route path=\"/admin\" element={user && user.role === \"admin\" ? <Admin token={token} /> : <Navigate to=\"/\" />} />\r\n      </Routes>\r\n    </Router>\r\n  );\r\n}\r\nexport default App\r\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}