{"ast":null,"code":"var _jsxFileName = \"D:\\\\LDT\\\\000 Project\\\\LDT\\\\Client\\\\src\\\\components\\\\HistoryTable.js\",\n  _s = $RefreshSig$();\n// src/components/HistoryTable.js\nimport React, { useState, useEffect, useContext } from \"react\";\nimport Pagination from \"./Pagination\";\nimport { AuthContext } from \"../contexts/AuthContext\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst rowsPerPage = 10;\nexport default function HistoryTable({\n  columns = [],\n  api\n}) {\n  _s();\n  const {\n    user\n  } = useContext(AuthContext);\n  const [data, setData] = useState([]);\n  const [total, setTotal] = useState(0);\n  const [page, setPage] = useState(1);\n  const [loading, setLoading] = useState(true);\n  const [selectedRow, setSelectedRow] = useState(null);\n  console.log(\"HistoryTable props.columns:\", columns);\n  console.log(\"HistoryTable props.api:\", api);\n  useEffect(() => {\n    if (!user) return;\n    setLoading(true);\n    fetch(`${api}?page=${page}&size=${rowsPerPage}`, {\n      headers: {\n        Authorization: `Bearer ${user.token}`\n      }\n    }).then(res => res.json()).then(data => {\n      setData(data.data || []);\n      setTotal(data.total || 0);\n      setLoading(false);\n    }).catch(() => setLoading(false));\n  }, [api, page, user]);\n  console.log(\"state.data:\", data);\n  console.log(\"state.total:\", total);\n  console.log(\"state.page:\", page);\n  if (!user) return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: \"\\uB85C\\uADF8\\uC778 \\uD544\\uC694\"\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 38,\n    columnNumber: 21\n  }, this);\n  const totalPages = Math.ceil(total / rowsPerPage);\n  return /*#__PURE__*/_jsxDEV(\"div\", {\n    children: loading ? /*#__PURE__*/_jsxDEV(\"div\", {\n      children: \"\\uB85C\\uB529\\uC911...\"\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 45,\n      columnNumber: 9\n    }, this) : /*#__PURE__*/_jsxDEV(\"div\", {\n      children: [/*#__PURE__*/_jsxDEV(Pagination, {\n        page: page,\n        totalPages: totalPages,\n        onPageChange: setPage\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 48,\n        columnNumber: 13\n      }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n        className: \"table-wrapper\",\n        children: /*#__PURE__*/_jsxDEV(\"table\", {\n          className: \"alt\",\n          children: [/*#__PURE__*/_jsxDEV(\"thead\", {\n            children: /*#__PURE__*/_jsxDEV(\"tr\", {\n              children: columns.map(col => /*#__PURE__*/_jsxDEV(\"th\", {\n                children: col.label\n              }, col.key, false, {\n                fileName: _jsxFileName,\n                lineNumber: 54,\n                columnNumber: 23\n              }, this))\n            }, void 0, false, {\n              fileName: _jsxFileName,\n              lineNumber: 52,\n              columnNumber: 19\n            }, this)\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 51,\n            columnNumber: 17\n          }, this), /*#__PURE__*/_jsxDEV(\"tbody\", {\n            children: (data || []).map(sensor => /*#__PURE__*/_jsxDEV(\"tr\", {\n              children: (columns || []).map(col => /*#__PURE__*/_jsxDEV(\"td\", {\n                children: sensor[col.key]\n              }, col.key, false, {\n                fileName: _jsxFileName,\n                lineNumber: 67,\n                columnNumber: 25\n              }, this))\n            }, sensor.mac || sensor.id, false, {\n              fileName: _jsxFileName,\n              lineNumber: 60,\n              columnNumber: 21\n            }, this))\n          }, void 0, false, {\n            fileName: _jsxFileName,\n            lineNumber: 58,\n            columnNumber: 17\n          }, this)]\n        }, void 0, true, {\n          fileName: _jsxFileName,\n          lineNumber: 50,\n          columnNumber: 15\n        }, this)\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 49,\n        columnNumber: 13\n      }, this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 47,\n      columnNumber: 9\n    }, this)\n  }, void 0, false, {\n    fileName: _jsxFileName,\n    lineNumber: 43,\n    columnNumber: 5\n  }, this);\n}\n_s(HistoryTable, \"xC2HG/g6yOMuk+1xIG9ZbEynRVQ=\");\n_c = HistoryTable;\nvar _c;\n$RefreshReg$(_c, \"HistoryTable\");","map":{"version":3,"names":["React","useState","useEffect","useContext","Pagination","AuthContext","jsxDEV","_jsxDEV","rowsPerPage","HistoryTable","columns","api","_s","user","data","setData","total","setTotal","page","setPage","loading","setLoading","selectedRow","setSelectedRow","console","log","fetch","headers","Authorization","token","then","res","json","catch","children","fileName","_jsxFileName","lineNumber","columnNumber","totalPages","Math","ceil","onPageChange","className","map","col","label","key","sensor","mac","id","_c","$RefreshReg$"],"sources":["D:/LDT/000 Project/LDT/Client/src/components/HistoryTable.js"],"sourcesContent":["// src/components/HistoryTable.js\r\nimport React, { useState, useEffect, useContext } from \"react\";\r\nimport Pagination from \"./Pagination\";\r\nimport { AuthContext } from \"../contexts/AuthContext\";\r\n\r\nconst rowsPerPage = 10;\r\n\r\nexport default function HistoryTable({ columns = [], api }) {\r\n  const { user } = useContext(AuthContext);\r\n  const [data, setData] = useState([]);\r\n  const [total, setTotal] = useState(0);\r\n  const [page, setPage] = useState(1);\r\n  const [loading, setLoading] = useState(true);\r\n  const [selectedRow, setSelectedRow] = useState(null);\r\n\r\n  console.log(\"HistoryTable props.columns:\", columns);\r\n  console.log(\"HistoryTable props.api:\", api);\r\n\r\n  useEffect(() => {\r\n    if (!user) return;\r\n    setLoading(true);\r\n    fetch(`${api}?page=${page}&size=${rowsPerPage}`, {\r\n      headers: { Authorization: `Bearer ${user.token}` }\r\n    })\r\n      .then(res => res.json())\r\n      .then(data => {\r\n        setData(data.data || []);\r\n        setTotal(data.total || 0);\r\n        setLoading(false);\r\n      })\r\n      .catch(() => setLoading(false));\r\n  }, [api, page, user]);\r\n\r\n  console.log(\"state.data:\", data);\r\n  console.log(\"state.total:\", total);\r\n  console.log(\"state.page:\", page);\r\n\r\n  if (!user) return <div>로그인 필요</div>;\r\n\r\n  const totalPages = Math.ceil(total / rowsPerPage);\r\n\r\n  return (\r\n    <div>\r\n      {loading ? (\r\n        <div>로딩중...</div>\r\n      ) : (\r\n        <div>\r\n            <Pagination page={page} totalPages={totalPages} onPageChange={setPage} />\r\n            <div className=\"table-wrapper\">\r\n              <table className=\"alt\">\r\n                <thead>\r\n                  <tr>\r\n                    {columns.map(col => (\r\n                      <th key={col.key}>{col.label}</th>\r\n                    ))}\r\n                  </tr>\r\n                </thead>\r\n                <tbody>\r\n                  {(data || []).map(sensor => (\r\n                    <tr\r\n                      key={sensor.mac || sensor.id}\r\n                      //className={selectedRow === (sensor.mac || sensor.id) ? \"selected\" : \"\"}\r\n                      //onClick={() => setSelectedRow(sensor.mac || sensor.id)}\r\n                      //style={{ cursor: \"pointer\" }}\r\n                    >\r\n                      {(columns || []).map(col => (\r\n                        <td key={col.key}>{sensor[col.key]}</td>\r\n                      ))}\r\n                    </tr>\r\n                  ))}\r\n                </tbody>\r\n              </table>\r\n            </div>\r\n        </div>\r\n      )}\r\n    </div>\r\n  );\r\n}\r\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}