{"ast":null,"code":"var _jsxFileName = \"D:\\\\LDT\\\\000 Project\\\\LDT\\\\Client\\\\src\\\\App.js\",\n  _s = $RefreshSig$();\nimport React, { useState } from 'react';\nimport Menu from './components/Menu';\nimport Login from './pages/Login';\nimport Modal from './components/Modal';\nimport { getToken, getRole } from './utils/auth';\n// ...다른 import\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nfunction App() {\n  _s();\n  const [loggedIn, setLoggedIn] = useState(!!getToken());\n  const [loginOpen, setLoginOpen] = useState(!getToken());\n  const handleLogin = () => {\n    setLoggedIn(true);\n    setLoginOpen(false);\n  };\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: [/*#__PURE__*/_jsxDEV(Menu, {\n      onLogout: () => {\n        setLoggedIn(false);\n        setLoginOpen(true);\n      }\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 19,\n      columnNumber: 7\n    }, this), !loggedIn && /*#__PURE__*/_jsxDEV(Modal, {\n      open: loginOpen,\n      onClose: () => setLoginOpen(false),\n      children: /*#__PURE__*/_jsxDEV(Login, {\n        onLogin: handleLogin\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 22,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 21,\n      columnNumber: 9\n    }, this), loggedIn && /*#__PURE__*/_jsxDEV(_Fragment, {\n      children: [window.location.pathname === '/sensors' && /*#__PURE__*/_jsxDEV(Sensors, {}, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 28,\n        columnNumber: 55\n      }, this), window.location.pathname === '/' && /*#__PURE__*/_jsxDEV(\"div\", {\n        children: \"\\uD648\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 29,\n        columnNumber: 48\n      }, this), window.location.pathname === '/admin' && getRole() === 'admin' && /*#__PURE__*/_jsxDEV(Admin, {}, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 30,\n        columnNumber: 78\n      }, this)]\n    }, void 0, true), !loggedIn && /*#__PURE__*/_jsxDEV(\"div\", {\n      style: {\n        textAlign: 'center',\n        marginTop: 60\n      },\n      children: /*#__PURE__*/_jsxDEV(\"button\", {\n        onClick: () => setLoginOpen(true),\n        style: {\n          fontSize: 18\n        },\n        children: \"\\uB85C\\uADF8\\uC778\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 35,\n        columnNumber: 11\n      }, this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 34,\n      columnNumber: 9\n    }, this)]\n  }, void 0, true, {\n    fileName: _jsxFileName,\n    lineNumber: 18,\n    columnNumber: 5\n  }, this);\n}\n_s(App, \"9CzPuunR7prSVvsTuSHbeay6tZE=\");\n_c = App;\nexport default App;\nvar _c;\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["React","useState","Menu","Login","Modal","getToken","getRole","jsxDEV","_jsxDEV","Fragment","_Fragment","App","_s","loggedIn","setLoggedIn","loginOpen","setLoginOpen","handleLogin","children","onLogout","fileName","_jsxFileName","lineNumber","columnNumber","open","onClose","onLogin","window","location","pathname","Sensors","Admin","style","textAlign","marginTop","onClick","fontSize","_c","$RefreshReg$"],"sources":["D:/LDT/000 Project/LDT/Client/src/App.js"],"sourcesContent":["import React, { useState } from 'react';\r\nimport Menu from './components/Menu';\r\nimport Login from './pages/Login';\r\nimport Modal from './components/Modal';\r\nimport { getToken, getRole } from './utils/auth';\r\n// ...다른 import\r\n\r\nfunction App() {\r\n  const [loggedIn, setLoggedIn] = useState(!!getToken());\r\n  const [loginOpen, setLoginOpen] = useState(!getToken());\r\n\r\n  const handleLogin = () => {\r\n    setLoggedIn(true);\r\n    setLoginOpen(false);\r\n  };\r\n\r\n  return (\r\n    <div>\r\n      <Menu onLogout={() => { setLoggedIn(false); setLoginOpen(true); }} />\r\n      {!loggedIn && (\r\n        <Modal open={loginOpen} onClose={() => setLoginOpen(false)}>\r\n          <Login onLogin={handleLogin} />\r\n        </Modal>\r\n      )}\r\n      {/* 나머지 페이지 라우팅은 그대로 */}\r\n      {loggedIn && (\r\n        <>\r\n          {window.location.pathname === '/sensors' && <Sensors />}\r\n          {window.location.pathname === '/' && <div>홈</div>}\r\n          {window.location.pathname === '/admin' && getRole() === 'admin' && <Admin />}\r\n        </>\r\n      )}\r\n      {!loggedIn && (\r\n        <div style={{ textAlign: 'center', marginTop: 60 }}>\r\n          <button onClick={() => setLoginOpen(true)} style={{ fontSize: 18 }}>로그인</button>\r\n        </div>\r\n      )}\r\n    </div>\r\n  );\r\n}\r\nexport default App;\r\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}