import React, { useEffect, useState } from 'react'; import PropTypes from 'prop-types'; import { CButton, CDataTable, CModal, CModalHeader, CModalTitle, CModalBody, CRow, CCol, CInput, CPopover, CSwitch, } from '@coreui/react'; import CIcon from '@coreui/icons-react'; import { cilX } from '@coreui/icons'; import { LoadingButton } from 'ucentral-libs'; import { cleanBytesString, prettyDate } from 'utils/helper'; const DeviceFirmwareModal = ({ t, device, show, toggle, firmwareVersions, upgradeToVersion, loading, upgradeStatus, keepRedirector, toggleRedirector, }) => { const [filter, setFilter] = useState(''); const fields = [ { key: 'imageDate', label: t('firmware.image_date'), _style: { width: '17%' }, filter: false }, { key: 'size', label: t('firmware.size'), _style: { width: '8%' }, filter: false }, { key: 'revision', label: t('firmware.revision'), _style: { width: '60%' } }, { key: 'show_details', label: '', _style: { width: '15%' }, filter: false }, ]; useEffect(() => { setFilter(''); }, [show]); return ( #{device?.serialNumber}
{show ? (
{t('firmware.installed_firmware')} {device.firmware} {t('factory_reset.redirector')} setFilter(e.target.value)} />
{prettyDate(item.imageDate)}, size: (item) => {cleanBytesString(item.size)}, show_details: (item) => ( upgradeToVersion(item.uri)} block={false} disabled={upgradeStatus.loading} /> ), }} />
) : (
)} ); }; DeviceFirmwareModal.propTypes = { t: PropTypes.func.isRequired, device: PropTypes.instanceOf(Object).isRequired, show: PropTypes.bool.isRequired, toggle: PropTypes.func.isRequired, firmwareVersions: PropTypes.instanceOf(Array).isRequired, upgradeToVersion: PropTypes.func.isRequired, loading: PropTypes.bool.isRequired, upgradeStatus: PropTypes.instanceOf(Object).isRequired, keepRedirector: PropTypes.bool.isRequired, toggleRedirector: PropTypes.func.isRequired, }; export default React.memo(DeviceFirmwareModal);