From 50f3a02bed051ca03d3efc4c2031b317533ad98a Mon Sep 17 00:00:00 2001 From: bourquecharles Date: Tue, 18 May 2021 07:06:38 -0400 Subject: [PATCH] Created wifi scan modal with basic return --- src/components/DeviceActions.js | 15 ++++ src/widgets/TraceModalWidget.js | 4 - src/widgets/WifiScanModalWidget.js | 126 +++++++++++++++++++++++++++++ 3 files changed, 141 insertions(+), 4 deletions(-) create mode 100644 src/widgets/WifiScanModalWidget.js diff --git a/src/components/DeviceActions.js b/src/components/DeviceActions.js index 57897aa..7d57118 100644 --- a/src/components/DeviceActions.js +++ b/src/components/DeviceActions.js @@ -3,12 +3,14 @@ import { CButton, CCard, CCardHeader, CCardBody, CRow, CCol } from '@coreui/reac import ActionModalWidget from '../widgets/ActionModalWidget'; import FirmwareUpgradeModal from './FirmwareUpgradeModal'; import TraceModalWidget from '../widgets/TraceModalWidget'; +import WifiScanModalWidget from '../widgets/WifiScanModalWidget'; const DeviceActions = () => { const [showRebootModal, setShowRebootModal] = useState(false); const [showBlinkModal, setShowBlinkModal] = useState(false); const [showUpgradeModal, setShowUpgradeModal] = useState(false); const [showTraceModal, setShowTraceModal] = useState(false); + const [showScanModal, setShowScanModal] = useState(false); const toggleRebootModal = () => { setShowRebootModal(!showRebootModal); @@ -26,6 +28,10 @@ const DeviceActions = () => { setShowTraceModal(!showTraceModal); }; + const toggleScanModal = () => { + setShowScanModal(!showScanModal); + }; + return ( Device Actions @@ -54,6 +60,14 @@ const DeviceActions = () => { + + + + Wifi Scan + + + + { /> + ); }; diff --git a/src/widgets/TraceModalWidget.js b/src/widgets/TraceModalWidget.js index 5439414..f09491b 100644 --- a/src/widgets/TraceModalWidget.js +++ b/src/widgets/TraceModalWidget.js @@ -53,10 +53,6 @@ const TraceModalWidget = ({ show, toggleModal }) => { setPackets(100); }, [show]); - useEffect(() => { - console.log(`packets: ${packets} duration: ${duration}`); - }, [duration, packets]); - const doAction = () => { setHadFailure(false); setHadSuccess(false); diff --git a/src/widgets/WifiScanModalWidget.js b/src/widgets/WifiScanModalWidget.js new file mode 100644 index 0000000..de4b329 --- /dev/null +++ b/src/widgets/WifiScanModalWidget.js @@ -0,0 +1,126 @@ +import { + CButton, + CModal, + CModalHeader, + CModalTitle, + CModalBody, + CModalFooter, + CSpinner, + CRow, + CFormGroup, + CInputRadio, + CLabel, + CForm + } from '@coreui/react'; + import React, { useState, useEffect } from 'react'; + import { useSelector } from 'react-redux'; + import 'react-widgets/styles.css'; + import { getToken } from '../utils/authHelper'; + import axiosInstance from '../utils/axiosInstance'; + + const WifiScanModalWidget = ({ show, toggleModal }) => { + const [hadSuccess, setHadSuccess] = useState(false); + const [hadFailure, setHadFailure] = useState(false); + const [waiting, setWaiting] = useState(false); + const [choseVerbose, setVerbose] = useState(true); + const [responseBody, setResponseBody] = useState(''); + const [checkingIfSure, setCheckingIfSure] = useState(false); + const selectedDeviceId = useSelector((state) => state.selectedDeviceId); + + const confirmingIfSure = () => { + setCheckingIfSure(true); + }; + + useEffect(() => { + setHadSuccess(false); + setHadFailure(false); + setWaiting(false); + setResponseBody(''); + setCheckingIfSure(false); + setVerbose(true); + }, [show]); + + const doAction = () => { + setHadFailure(false); + setHadSuccess(false); + setWaiting(true); + + const token = getToken(); + + const parameters = { + serialNumber: selectedDeviceId, + verbose: choseVerbose + }; + const headers = { + Accept: 'application/json', + Authorization: `Bearer ${token}`, + }; + + axiosInstance + .post(`/device/${selectedDeviceId}/wifiscan`, parameters, { headers }) + .then((response) => { + setResponseBody(JSON.stringify(response.data, null, 4)); + setHadSuccess(true); + }) + .catch((error) => { + setHadFailure(true); + console.log(error); + console.log(error.response); + }) + .finally(() => { + setCheckingIfSure(false); + setWaiting(false); + }); + }; + + return ( + + + Wifi Scan + + +
+ Launch a wifi scan of this device, which should take approximately 25 seconds. +
+ + + setVerbose(true)}> + + With verbose + + setVerbose(false)}> + + Without verbose + + + + +
+ + + + + + Cancel + + +
+ ); + }; + + export default WifiScanModalWidget; + \ No newline at end of file