diff --git a/src/components/Diagnostics.css b/src/components/Diagnostics.css new file mode 100644 index 0000000..e69de29 diff --git a/src/components/Diagnostics.js b/src/components/Diagnostics.js new file mode 100644 index 0000000..86e2d61 --- /dev/null +++ b/src/components/Diagnostics.js @@ -0,0 +1,68 @@ +import React, { useEffect, useState, useRef } from 'react'; +import { query, collection, onSnapshot, where, orderBy, limit } from 'firebase/firestore'; +import moment from 'moment'; + +import db from '../firebase'; +import './Diagnostics.css'; + +const Diagnostics = () => { + const [samples, setSamples] = useState([]); + + useEffect(() => { + if (!samples.length) { + const q = query(collection(db, "diagnostics"), where("runTime", ">=", moment().format("YYYY-MM-DD").toString()), orderBy("runTime", "desc")); + + const unsub = onSnapshot(q, (querySnapshot) => { + const samples = []; + querySnapshot.forEach((document) => { + console.log(document.id); + const data = document.data(); + const id = document.id; + samples.push({id, ...data}); + }); + 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
+ )} */} + + +

Diagnostics

+ +
+ + + + + + + {samples.map((sample, index) => ( + + + + + + ))} +
DeviceRaw DataTime
{sample.deviceId}{sample.deviceData || 'NA'}{moment(sample.testTime).format('HH:mm:ss')}
+
+
+ ) +} + +export default Diagnostics; \ No newline at end of file diff --git a/src/routes/appRoutes.js b/src/routes/appRoutes.js index bae64d4..f4c6429 100644 --- a/src/routes/appRoutes.js +++ b/src/routes/appRoutes.js @@ -7,7 +7,7 @@ import Devices from '../components/Devices'; import { Download, FactCheck } from '@mui/icons-material'; import ExportData from '../components/ExportData'; import Registration from '../components/Registration'; -import { FaAndroid, FaArrowCircleLeft, FaBars, FaBezierCurve, FaChalkboardTeacher, FaChartArea, FaChartLine, FaCheck, FaCommentAlt, FaExclamation, FaFlask, FaGolfBall, FaPhone, FaQuestionCircle, FaSearch, FaUser } from 'react-icons/fa'; +import { FaAndroid, FaArrowCircleLeft, FaBars, FaBezierCurve, FaChalkboardTeacher, FaChartArea, FaChartLine, FaCheck, FaCommentAlt, FaExclamation, FaFlask, FaGolfBall, FaMicrochip, FaPhone, FaQuestionCircle, FaSearch, FaUser } from 'react-icons/fa'; import AppInstallation from '../components/AppInstallation'; import Samples from '../components/Samples'; import Precision from '../components/Precision'; @@ -15,6 +15,7 @@ import Accuracy from '../components/Accuracy'; import CurveFit from '../components/CurveFit'; import Help from '../components/Help'; import Gemini from '../components/Gemini'; +import Diagnostics from '../components/Diagnostics'; const appRoutes = [ { @@ -76,6 +77,15 @@ const appRoutes = [ icon: } }, + { + path: "/diagnostics", + element: , + state: "Diagnostics", + sidebarProps: { + displayText: "Device Data", + icon: + } + }, // { // path: "/precision", // element: ,