import React, { useEffect } from 'react'; import PropTypes from 'prop-types'; import { Trans, useTranslation } from 'react-i18next'; import classNames from 'classnames'; import Statistics from './Statistics'; import Counters from './Counters'; import Clients from './Clients'; import QueriedDomains from './QueriedDomains'; import BlockedDomains from './BlockedDomains'; import PageTitle from '../ui/PageTitle'; import Loading from '../ui/Loading'; import './Dashboard.css'; const Dashboard = ({ getAccessList, getStats, getStatsConfig, dashboard, dashboard: { protectionEnabled, processingProtection }, toggleProtection, stats, access, }) => { const { t } = useTranslation(); const getAllStats = () => { getAccessList(); getStats(); getStatsConfig(); }; useEffect(() => { getAllStats(); }, []); const buttonText = protectionEnabled ? 'disable_protection' : 'enable_protection'; const buttonClass = classNames('btn btn-sm dashboard-title__button', { 'btn-gray': protectionEnabled, 'btn-success': !protectionEnabled, }); const refreshButton = ; const subtitle = stats.interval === 1 ? t('for_last_24_hours') : t('for_last_days', { count: stats.interval }); const statsProcessing = stats.processingStats || stats.processingGetConfig || access.processing; return <> {statsProcessing && } {!statsProcessing &&
} ; }; Dashboard.propTypes = { dashboard: PropTypes.object.isRequired, stats: PropTypes.object.isRequired, access: PropTypes.object.isRequired, getStats: PropTypes.func.isRequired, getStatsConfig: PropTypes.func.isRequired, toggleProtection: PropTypes.func.isRequired, getClients: PropTypes.func.isRequired, getAccessList: PropTypes.func.isRequired, }; export default Dashboard;