{"ast":null,"code":"var _jsxFileName = \"D:\\\\LDT\\\\000 Project\\\\LDT\\\\Client\\\\src\\\\components\\\\Menu.js\";\nimport React from 'react';\nimport { getRole, removeToken } from '../utils/auth';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst menuItems = [{\n  name: '홈',\n  path: '/',\n  icon: 'fa-home'\n}, {\n  name: '센서리스트',\n  path: '/sensors',\n  icon: 'fa-microchip',\n  roles: ['user', 'manager', 'admin']\n}, {\n  name: '관리자',\n  path: '/admin',\n  icon: 'fa-user-shield',\n  roles: ['admin']\n}];\nfunction Menu({\n  onLogout\n}) {\n  const role = getRole();\n  return /*#__PURE__*/_jsxDEV(\"nav\", {\n    children: /*#__PURE__*/_jsxDEV(\"ul\", {\n      children: [menuItems.map(m => (!m.roles || m.roles.includes(role)) && /*#__PURE__*/_jsxDEV(\"li\", {\n        children: /*#__PURE__*/_jsxDEV(\"a\", {\n          href: m.path,\n          className: `icon solid ${m.icon}`,\n          children: m.name\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 18,\n          columnNumber: 15\n        }, this)\n      }, m.path, false, {\n        fileName: _jsxFileName,\n        lineNumber: 17,\n        columnNumber: 13\n      }, this)), /*#__PURE__*/_jsxDEV(\"li\", {\n        children: /*#__PURE__*/_jsxDEV(\"button\", {\n          onClick: () => {\n            removeToken();\n            onLogout();\n          },\n          className: \"icon solid fa-sign-out-alt\",\n          style: {\n            border: 0,\n            background: \"none\",\n            cursor: \"pointer\",\n            color: \"#4361ee\"\n          },\n          children: \"\\uB85C\\uADF8\\uC544\\uC6C3\"\n        }, void 0, false, {\n          fileName: _jsxFileName,\n          lineNumber: 23,\n          columnNumber: 11\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 22,\n        columnNumber: 9\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 14,\n      columnNumber: 7\n    }, this)\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 13,\n    columnNumber: 5\n  }, this);\n}\n_c = Menu;\nexport default Menu;\nvar _c;\n$RefreshReg$(_c, \"Menu\");","map":{"version":3,"names":["React","getRole","removeToken","jsxDEV","_jsxDEV","menuItems","name","path","icon","roles","Menu","onLogout","role","children","map","m","includes","href","className","fileName","_jsxFileName","lineNumber","columnNumber","onClick","style","border","background","cursor","color","_c","$RefreshReg$"],"sources":["D:/LDT/000 Project/LDT/Client/src/components/Menu.js"],"sourcesContent":["import React from 'react';\r\nimport { getRole, removeToken } from '../utils/auth';\r\n\r\nconst menuItems = [\r\n  { name: '홈', path: '/', icon: 'fa-home' },\r\n  { name: '센서리스트', path: '/sensors', icon: 'fa-microchip', roles: ['user', 'manager', 'admin'] },\r\n  { name: '관리자', path: '/admin', icon: 'fa-user-shield', roles: ['admin'] },\r\n];\r\n\r\nfunction Menu({ onLogout }) {\r\n  const role = getRole();\r\n  return (\r\n    <nav>\r\n      <ul>\r\n        {menuItems.map(\r\n          m => (!m.roles || m.roles.includes(role)) && (\r\n            <li key={m.path}>\r\n              <a href={m.path} className={`icon solid ${m.icon}`}>{m.name}</a>\r\n            </li>\r\n          )\r\n        )}\r\n        <li>\r\n          <button onClick={() => { removeToken(); onLogout(); }} className=\"icon solid fa-sign-out-alt\" style={{ border: 0, background: \"none\", cursor: \"pointer\", color: \"#4361ee\" }}>\r\n            로그아웃\r\n          </button>\r\n        </li>\r\n      </ul>\r\n    </nav>\r\n  );\r\n}\r\nexport default Menu;\r\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,EAAEC,WAAW,QAAQ,eAAe;AAAC,SAAAC,MAAA,IAAAC,OAAA;AAErD,MAAMC,SAAS,GAAG,CAChB;EAAEC,IAAI,EAAE,GAAG;EAAEC,IAAI,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAU,CAAC,EACzC;EAAEF,IAAI,EAAE,OAAO;EAAEC,IAAI,EAAE,UAAU;EAAEC,IAAI,EAAE,cAAc;EAAEC,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO;AAAE,CAAC,EAC9F;EAAEH,IAAI,EAAE,KAAK;EAAEC,IAAI,EAAE,QAAQ;EAAEC,IAAI,EAAE,gBAAgB;EAAEC,KAAK,EAAE,CAAC,OAAO;AAAE,CAAC,CAC1E;AAED,SAASC,IAAIA,CAAC;EAAEC;AAAS,CAAC,EAAE;EAC1B,MAAMC,IAAI,GAAGX,OAAO,CAAC,CAAC;EACtB,oBACEG,OAAA;IAAAS,QAAA,eACET,OAAA;MAAAS,QAAA,GACGR,SAAS,CAACS,GAAG,CACZC,CAAC,IAAI,CAAC,CAACA,CAAC,CAACN,KAAK,IAAIM,CAAC,CAACN,KAAK,CAACO,QAAQ,CAACJ,IAAI,CAAC,kBACtCR,OAAA;QAAAS,QAAA,eACET,OAAA;UAAGa,IAAI,EAAEF,CAAC,CAACR,IAAK;UAACW,SAAS,EAAE,cAAcH,CAAC,CAACP,IAAI,EAAG;UAAAK,QAAA,EAAEE,CAAC,CAACT;QAAI;UAAAa,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAI;MAAC,GADzDP,CAAC,CAACR,IAAI;QAAAY,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OAEX,CAER,CAAC,eACDlB,OAAA;QAAAS,QAAA,eACET,OAAA;UAAQmB,OAAO,EAAEA,CAAA,KAAM;YAAErB,WAAW,CAAC,CAAC;YAAES,QAAQ,CAAC,CAAC;UAAE,CAAE;UAACO,SAAS,EAAC,4BAA4B;UAACM,KAAK,EAAE;YAAEC,MAAM,EAAE,CAAC;YAAEC,UAAU,EAAE,MAAM;YAAEC,MAAM,EAAE,SAAS;YAAEC,KAAK,EAAE;UAAU,CAAE;UAAAf,QAAA,EAAC;QAE7K;UAAAM,QAAA,EAAAC,YAAA;UAAAC,UAAA;UAAAC,YAAA;QAAA,OAAQ;MAAC;QAAAH,QAAA,EAAAC,YAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,OACP,CAAC;IAAA;MAAAH,QAAA,EAAAC,YAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA,OACH;EAAC;IAAAH,QAAA,EAAAC,YAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,OACF,CAAC;AAEV;AAACO,EAAA,GApBQnB,IAAI;AAqBb,eAAeA,IAAI;AAAC,IAAAmB,EAAA;AAAAC,YAAA,CAAAD,EAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}