import { CButton, CModal, CModalHeader, CModalTitle, CModalBody, CModalFooter, CSpinner, CRow, CForm, CSwitch, CAlert, } from '@coreui/react'; import React, { useState, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import PropTypes from 'prop-types'; import 'react-widgets/styles.css'; import { useAuth } from 'contexts/AuthProvider'; import { useDevice } from 'contexts/DeviceProvider'; import axiosInstance from 'utils/axiosInstance'; import SuccessfulActionModalBody from 'components/SuccessfulActionModalBody'; import styles from './index.module.scss'; const ConfigureModal = ({ show, toggleModal }) => { const { t } = useTranslation(); const { currentToken, endpoints } = useAuth(); const { deviceSerialNumber } = useDevice(); const [hadSuccess, setHadSuccess] = useState(false); const [hadFailure, setHadFailure] = useState(false); const [doingNow, setDoingNow] = useState(false); const [waiting, setWaiting] = useState(false); const [keepRedirector, setKeepRedirector] = useState(true); const [responseBody, setResponseBody] = useState(''); const [checkingIfSure, setCheckingIfSure] = useState(false); const toggleRedirector = () => { setKeepRedirector(!keepRedirector); }; const confirmingIfSure = () => { setCheckingIfSure(true); }; useEffect(() => { setHadSuccess(false); setHadFailure(false); setWaiting(false); setResponseBody(''); setCheckingIfSure(false); }, [show]); const doAction = () => { setHadFailure(false); setHadSuccess(false); setWaiting(true); const parameters = { serialNumber: deviceSerialNumber, keepRedirector, }; const headers = { Accept: 'application/json', Authorization: `Bearer ${currentToken}`, }; axiosInstance .post( `${endpoints.ucentralgw}/api/v1/device/${encodeURIComponent(deviceSerialNumber)}/factory`, parameters, { headers }, ) .then(() => { setHadSuccess(true); }) .catch(() => { setResponseBody(t('commands.error')); setHadFailure(true); }) .finally(() => { setDoingNow(false); setCheckingIfSure(false); setWaiting(false); }); }; return ( {t('factory_reset.title')} {hadSuccess ? ( ) : (
{t('factory_reset.warning')}

{t('factory_reset.redirector')}

{t('common.cancel')}
)}
); }; ConfigureModal.propTypes = { show: PropTypes.bool.isRequired, toggleModal: PropTypes.func.isRequired, }; export default ConfigureModal;