import React from 'react'; import PropTypes from 'prop-types'; import ReactTable from 'react-table'; import { Trans, useTranslation } from 'react-i18next'; import { useDispatch } from 'react-redux'; import { LEASES_TABLE_DEFAULT_PAGE_SIZE } from '../../../../helpers/constants'; import { sortIp } from '../../../../helpers/helpers'; import Modal from './Modal'; import { addStaticLease, removeStaticLease } from '../../../../actions'; const cellWrap = ({ value }) => (
{value}
); const StaticLeases = ({ isModalOpen, processingAdding, processingDeleting, staticLeases, }) => { const [t] = useTranslation(); const dispatch = useDispatch(); const handleSubmit = (data) => { dispatch(addStaticLease(data)); }; const handleDelete = (ip, mac, hostname = '') => { const name = hostname || ip; // eslint-disable-next-line no-alert if (window.confirm(t('delete_confirm', { key: name }))) { dispatch(removeStaticLease({ ip, mac, hostname, })); } }; return ( <> dhcp_table_hostname, accessor: 'hostname', Cell: cellWrap, }, { Header: actions_table_header, accessor: 'actions', maxWidth: 150, // eslint-disable-next-line react/display-name Cell: (row) => { const { ip, mac, hostname } = row.original; return
; }, }, ]} pageSize={LEASES_TABLE_DEFAULT_PAGE_SIZE} showPageSizeOptions={false} showPagination={staticLeases.length > LEASES_TABLE_DEFAULT_PAGE_SIZE} noDataText={t('dhcp_static_leases_not_found')} className="-striped -highlight card-table-overflow" minRows={6} /> ); }; StaticLeases.propTypes = { staticLeases: PropTypes.array.isRequired, isModalOpen: PropTypes.bool.isRequired, processingAdding: PropTypes.bool.isRequired, processingDeleting: PropTypes.bool.isRequired, }; cellWrap.propTypes = { value: PropTypes.string.isRequired, }; export default StaticLeases;