Files
AdGuardHome/client/src/components/Settings/StatsConfig/index.js
Ainar Garipov e218ddc35f Pull request 2036: 6180 revert
Updates #6180.

Squashed commit of the following:

commit 38689bd26cad9b195cf01f5f1b09fbe075c6ff84
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Wed Oct 11 18:24:23 2023 +0300

    Revert "6180 fix dashboard empty tables scroll"

    This reverts commit 3ce3c41b59.
2023-10-11 18:32:50 +03:00

88 lines
2.6 KiB
JavaScript

import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { withTranslation } from 'react-i18next';
import Card from '../../ui/Card';
import Form from './Form';
import { HOUR } from '../../../helpers/constants';
class StatsConfig extends Component {
handleFormSubmit = ({
enabled, interval, ignored, customInterval,
}) => {
const { t, interval: prevInterval } = this.props;
const newInterval = customInterval ? customInterval * HOUR : interval;
const config = {
enabled,
interval: newInterval,
ignored: ignored ? ignored.split('\n') : [],
};
if (config.interval < prevInterval) {
if (window.confirm(t('statistics_retention_confirm'))) {
this.props.setStatsConfig(config);
}
} else {
this.props.setStatsConfig(config);
}
};
handleReset = () => {
const { t, resetStats } = this.props;
// eslint-disable-next-line no-alert
if (window.confirm(t('statistics_clear_confirm'))) {
resetStats();
}
};
render() {
const {
t,
interval,
customInterval,
processing,
processingReset,
ignored,
enabled,
} = this.props;
return (
<Card
title={t('statistics_configuration')}
bodyType="card-body box-body--settings"
id="stats-config"
>
<div className="form">
<Form
initialValues={{
interval,
customInterval,
enabled,
ignored: ignored.join('\n'),
}}
onSubmit={this.handleFormSubmit}
processing={processing}
processingReset={processingReset}
handleReset={this.handleReset}
/>
</div>
</Card>
);
}
}
StatsConfig.propTypes = {
interval: PropTypes.number.isRequired,
customInterval: PropTypes.number,
ignored: PropTypes.array.isRequired,
enabled: PropTypes.bool.isRequired,
processing: PropTypes.bool.isRequired,
processingReset: PropTypes.bool.isRequired,
setStatsConfig: PropTypes.func.isRequired,
resetStats: PropTypes.func.isRequired,
t: PropTypes.func.isRequired,
};
export default withTranslation()(StatsConfig);