Updates #6180 Squashed commit of the following: commit eee7fa39d4e1d366086a541216a1b00051c3af8a Author: Ildar Kamalov <ik@adguard.com> Date: Tue Oct 17 11:47:41 2023 +0300 fix scroll commit 0a86a1a5c3d56902ad8de92a34b28d3e462a00c3 Merge: 07f4550ed413f48481Author: Ildar Kamalov <ik@adguard.com> Date: Tue Oct 17 10:27:29 2023 +0300 Merge branch 'master' into ADG-7473-1 commit 07f4550ed0fbb400f4d99a3e9fd60acf8b9f2e2e Author: Ildar Kamalov <ik@adguard.com> Date: Fri Oct 13 17:41:47 2023 +0300 changelog commit 28a1a7360344475b1d1d46b7d9ef14b292d82746 Author: Ildar Kamalov <ik@adguard.com> Date: Fri Oct 13 16:13:59 2023 +0300 overflow commit aa38288326bcfa374245416d270bd57bc217cabd Author: Ildar Kamalov <ik@adguard.com> Date: Fri Oct 13 16:09:05 2023 +0300 firefox scroll commit ac98653f2daf57d23f877a3a3f0c8cb9d3b0f536 Author: Ildar Kamalov <ik@adguard.com> Date: Fri Oct 13 16:06:49 2023 +0300 constants commit a3cdd0acd454934af8c1999d87ecb736dbdca0b9 Merge: 0cd848115506d71310Author: Ildar Kamalov <ik@adguard.com> Date: Fri Oct 13 16:03:16 2023 +0300 Merge branch 'master' into ADG-7473-1 commit 0cd8481150d6b3000bc8796bdff963c7a07a2e7d Author: Ildar Kamalov <ik@adguard.com> Date: Thu Oct 12 11:13:14 2023 +0300 changelog commit ed678070e7b1e6a144ebd7fefe99137a1529c025 Author: Ildar Kamalov <ik@adguard.com> Date: Thu Oct 12 11:00:23 2023 +0300 fix rows commit 5e4f35c874de15fc51a312e0ab2ba19018537194 Author: Ildar Kamalov <ik@adguard.com> Date: Thu Oct 12 10:58:58 2023 +0300 ADG-7473 fix dashboard tables scroll
81 lines
2.2 KiB
JavaScript
81 lines
2.2 KiB
JavaScript
import React from 'react';
|
||
import ReactTable from 'react-table';
|
||
import PropTypes from 'prop-types';
|
||
import round from 'lodash/round';
|
||
import { withTranslation, Trans } from 'react-i18next';
|
||
|
||
import Card from '../ui/Card';
|
||
import DomainCell from './DomainCell';
|
||
import { DASHBOARD_TABLES_DEFAULT_PAGE_SIZE, TABLES_MIN_ROWS } from '../../helpers/constants';
|
||
|
||
const TimeCell = ({ value }) => {
|
||
if (!value) {
|
||
return '–';
|
||
}
|
||
|
||
const valueInMilliseconds = round(value * 1000);
|
||
|
||
return (
|
||
<div className="logs__row o-hidden">
|
||
<span className="logs__text logs__text--full" title={valueInMilliseconds}>
|
||
{valueInMilliseconds} ms
|
||
</span>
|
||
</div>
|
||
);
|
||
};
|
||
|
||
TimeCell.propTypes = {
|
||
value: PropTypes.oneOfType([
|
||
PropTypes.string,
|
||
PropTypes.number,
|
||
]),
|
||
};
|
||
|
||
const UpstreamAvgTime = ({
|
||
t,
|
||
refreshButton,
|
||
topUpstreamsAvgTime,
|
||
subtitle,
|
||
}) => (
|
||
<Card
|
||
title={t('average_processing_time')}
|
||
subtitle={subtitle}
|
||
bodyType="card-table"
|
||
refresh={refreshButton}
|
||
>
|
||
<ReactTable
|
||
data={topUpstreamsAvgTime.map(({ name: domain, count }) => ({
|
||
domain,
|
||
count,
|
||
}))}
|
||
columns={[
|
||
{
|
||
Header: <Trans>upstream</Trans>,
|
||
accessor: 'domain',
|
||
Cell: DomainCell,
|
||
},
|
||
{
|
||
Header: <Trans>processing_time</Trans>,
|
||
accessor: 'count',
|
||
maxWidth: 190,
|
||
Cell: TimeCell,
|
||
},
|
||
]}
|
||
showPagination={false}
|
||
noDataText={t('no_upstreams_data_found')}
|
||
minRows={TABLES_MIN_ROWS}
|
||
defaultPageSize={DASHBOARD_TABLES_DEFAULT_PAGE_SIZE}
|
||
className="-highlight card-table-overflow--limited stats__table"
|
||
/>
|
||
</Card>
|
||
);
|
||
|
||
UpstreamAvgTime.propTypes = {
|
||
topUpstreamsAvgTime: PropTypes.array.isRequired,
|
||
refreshButton: PropTypes.node.isRequired,
|
||
subtitle: PropTypes.string.isRequired,
|
||
t: PropTypes.func.isRequired,
|
||
};
|
||
|
||
export default withTranslation()(UpstreamAvgTime);
|