diff --git a/src/components/Samples.css b/src/components/Samples.css new file mode 100644 index 0000000..4439adb --- /dev/null +++ b/src/components/Samples.css @@ -0,0 +1,38 @@ +#samples-table { + font-family: Arial, Helvetica, sans-serif; + border-collapse: collapse; + width: 100%; +} + +#samples-table td, +#samples-table th { + border: 1px solid #ddd; + padding: 8px; + width: 10vw; +} + +#samples-table td { + width: 15vw; +} + +#samples-table tr:nth-child(even) { + background-color: #f2f2f2; +} + +#samples-table tr:hover { + background-color: #ddd; +} + +#samples-table th { + padding-top: 12px; + padding-bottom: 12px; + text-align: center; + background-color: rgb(144, 183, 255); + color: black; + width: 5vw; +} + +.samples-container { + overflow-x: auto; + overflow-y: auto; +} \ No newline at end of file diff --git a/src/components/Samples.js b/src/components/Samples.js new file mode 100644 index 0000000..7f21605 --- /dev/null +++ b/src/components/Samples.js @@ -0,0 +1,75 @@ +import React, { useEffect, useState, useRef } from 'react'; +import { query, collection, onSnapshot, where, orderBy, limit } from 'firebase/firestore'; + +import './Samples.css'; +import db from '../firebase'; +import moment from 'moment'; + +const Samples = () => { + const [samples, setSamples] = useState([]); + + useEffect(() => { + if (!samples.length) { + const q = query(collection(db, "testData"), where("testTime", ">=", moment().format("YYYY-MM-DD").toString()), orderBy("testTime", "desc")); + + const unsub = onSnapshot(q, (querySnapshot) => { + const samples = []; + querySnapshot.forEach((document) => { + console.log(document.data()); + const alert = document.data(); + samples.push(alert); + }); + setSamples(samples); + }); + + return () => unsub; + } + }, []); + + return ( +
+ {/*

Samples page for denovix useage

+ {samples.length ? ( + samples.map((alert, index) => ( +
+
{alert._id}
+

{alert.testTime}

+

{moment(alert.testTime).fromNow()}

+
+ )) + ) : ( +
Samples will appear as in when a test is recorded
+ )} */} + + +

Samples

+ +
+ + + + + + {/* */} + + + + + {samples.map((sample, index) => ( + + + + + {/* */} + + + + + ))} +
Sample NameDeviceled1Averageled2Averageled3AverageDev ratioTime
{sample.name}{sample.deviceId}{sample.led1Average}{sample.led2Average || 'NA'}{sample.led3Average || 'NA'}{sample.deviceRatio}{sample.testTime}
+
+
+ ) +} + +export default Samples; diff --git a/src/routes/appRoutes.js b/src/routes/appRoutes.js index 5f8480c..a174bb1 100644 --- a/src/routes/appRoutes.js +++ b/src/routes/appRoutes.js @@ -7,8 +7,9 @@ import Devices from '../components/Devices'; import { Download } from '@mui/icons-material'; import ExportData from '../components/ExportData'; import Registration from '../components/Registration'; -import { FaAndroid, FaPhone, FaUser } from 'react-icons/fa'; +import { FaAndroid, FaFlask, FaPhone, FaSearch, FaUser } from 'react-icons/fa'; import AppInstallation from '../components/AppInstallation'; +import Samples from '../components/Samples'; const appRoutes = [ { @@ -61,6 +62,15 @@ const appRoutes = [ icon: } }, + { + path: "/samples", + element: , + state: "Samples", + sidebarProps: { + displayText: "Samples", + icon: + } + }, ] export default appRoutes; \ No newline at end of file