Files
AdGuardHome/client/src/components/Dashboard/UpstreamResponses.js
Ildar Kamalov f514f365ab Pull request: 6180 fix dashboard tables scroll
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: 07f4550ed 413f48481
Author: 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: 0cd848115 506d71310
Author: 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
2023-10-17 16:52:28 +03:00

82 lines
2.3 KiB
JavaScript

import React from 'react';
import ReactTable from 'react-table';
import PropTypes from 'prop-types';
import { withTranslation, Trans } from 'react-i18next';
import Card from '../ui/Card';
import Cell from '../ui/Cell';
import DomainCell from './DomainCell';
import { getPercent } from '../../helpers/helpers';
import { DASHBOARD_TABLES_DEFAULT_PAGE_SIZE, STATUS_COLORS, TABLES_MIN_ROWS } from '../../helpers/constants';
const CountCell = (totalBlocked) => (
function cell(row) {
const { value } = row;
const percent = getPercent(totalBlocked, value);
return (
<Cell
value={value}
percent={percent}
color={STATUS_COLORS.green}
/>
);
}
);
const getTotalUpstreamRequests = (stats) => {
let total = 0;
stats.forEach(({ count }) => { total += count; });
return total;
};
const UpstreamResponses = ({
t,
refreshButton,
topUpstreamsResponses,
subtitle,
}) => (
<Card
title={t('top_upstreams')}
subtitle={subtitle}
bodyType="card-table"
refresh={refreshButton}
>
<ReactTable
data={topUpstreamsResponses.map(({ name: domain, count }) => ({
domain,
count,
}))}
columns={[
{
Header: <Trans>upstream</Trans>,
accessor: 'domain',
Cell: DomainCell,
},
{
Header: <Trans>requests_count</Trans>,
accessor: 'count',
maxWidth: 190,
Cell: CountCell(getTotalUpstreamRequests(topUpstreamsResponses)),
},
]}
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>
);
UpstreamResponses.propTypes = {
topUpstreamsResponses: PropTypes.array.isRequired,
refreshButton: PropTypes.node.isRequired,
subtitle: PropTypes.string.isRequired,
t: PropTypes.func.isRequired,
};
export default withTranslation()(UpstreamResponses);