import React, { useEffect } from 'react'; import PropTypes from 'prop-types'; import ReactPaginate from 'react-paginate'; import { CCardBody, CDataTable, CButton, CCard, CCardHeader, CPopover, CSelect, CButtonToolbar, } from '@coreui/react'; import { cilPencil, cilPlus } from '@coreui/icons'; import ReactTooltip from 'react-tooltip'; import CIcon from '@coreui/icons-react'; import { FormattedDate } from 'ucentral-libs'; import DeleteButton from './DeleteButton'; const DefaultConfigurationTable = ({ currentPage, configurations, toggleAddBlacklist, toggleEditModal, configurationsPerPage, loading, deleteConfig, updateDevicesPerPage, pageCount, updatePage, t, }) => { const columns = [ { key: 'name', label: t('user.name'), _style: { width: '20%' } }, { key: 'description', label: t('user.description'), _style: { width: '20%' } }, { key: 'created', label: t('common.created'), _style: { width: '10%' } }, { key: 'modified', label: t('common.modified'), _style: { width: '10%' } }, { key: 'deviceTypes', label: t('firmware.device_types'), _style: { width: '20%' } }, { key: 'actions', label: t('actions.actions'), _style: { width: '1%' } }, ]; const hideTooltips = () => ReactTooltip.hide(); const escFunction = (event) => { if (event.keyCode === 27) { hideTooltips(); } }; useEffect(() => { document.addEventListener('keydown', escFunction, false); return () => { document.removeEventListener('keydown', escFunction, false); }; }, []); return ( <>
{t('configuration.default_configurations')}
{item.name}, description: (item) => {item.description}, deviceTypes: (item) => {item.modelIds.join(', ')}, created: (item) => ( ), modified: (item) => ( ), actions: (item) => ( toggleEditModal(item.name)} color="primary" variant="outline" shape="square" size="sm" className="mx-1" style={{ width: '33px', height: '30px' }} > ), }} />

{t('common.items_per_page')}

updateDevicesPerPage(e.target.value)} disabled={loading} >
); }; DefaultConfigurationTable.propTypes = { currentPage: PropTypes.string, configurations: PropTypes.instanceOf(Array).isRequired, toggleAddBlacklist: PropTypes.func.isRequired, toggleEditModal: PropTypes.func.isRequired, updateDevicesPerPage: PropTypes.func.isRequired, pageCount: PropTypes.number.isRequired, updatePage: PropTypes.func.isRequired, configurationsPerPage: PropTypes.string.isRequired, deleteConfig: PropTypes.func.isRequired, t: PropTypes.func.isRequired, loading: PropTypes.bool.isRequired, }; DefaultConfigurationTable.defaultProps = { currentPage: '0', }; export default React.memo(DefaultConfigurationTable);