update report page
This commit is contained in:
@@ -1,31 +1,56 @@
|
||||
'use client'
|
||||
|
||||
import { useUserFilesInfo } from '@/app/hooks/react-query/useUserFilesInfo';
|
||||
import { useTranslations } from 'next-intl';
|
||||
import { IconImageFile, IconVideoFile, IconAudioFile, IconDocument } from '@/app/ui/icons/icons';
|
||||
|
||||
export default function ActivityByContentType() {
|
||||
const t = useTranslations('Global');
|
||||
const { data: filesInfo, isLoading, isError, error } = useUserFilesInfo();
|
||||
|
||||
return (
|
||||
<div className="enhanced-chart-container">
|
||||
<div className="enhanced-chart-header">
|
||||
<h3 className="enhanced-chart-title">
|
||||
Активность проверок по типам контента
|
||||
{t('check-activity-by-content-type')}
|
||||
</h3>
|
||||
</div>
|
||||
<div className="search-stats-grid">
|
||||
<div className="search-stat-item">
|
||||
<div className="search-stat-icon">📸</div>
|
||||
<div className="search-stat-value">0</div>
|
||||
<div className="search-stat-label">Изображения</div>
|
||||
<div className="search-stat-icon">
|
||||
<IconImageFile />
|
||||
</div>
|
||||
<div className="search-stat-value">{filesInfo?.images.check ? filesInfo?.images.check : 0}</div>
|
||||
<div className="search-stat-label">
|
||||
{t('images')}
|
||||
</div>
|
||||
</div>
|
||||
<div className="search-stat-item">
|
||||
<div className="search-stat-icon">🎬</div>
|
||||
<div className="search-stat-value">0</div>
|
||||
<div className="search-stat-label">Видеофайлы</div>
|
||||
<div className="search-stat-icon">
|
||||
<IconVideoFile />
|
||||
</div>
|
||||
<div className="search-stat-value">{filesInfo?.videos.check ? filesInfo?.videos.check : 0}</div>
|
||||
<div className="search-stat-label">
|
||||
{t('videos')}
|
||||
</div>
|
||||
</div>
|
||||
<div className="search-stat-item">
|
||||
<div className="search-stat-icon">🎵</div>
|
||||
<div className="search-stat-value">0</div>
|
||||
<div className="search-stat-label">Аудиозаписи</div>
|
||||
<div className="search-stat-icon">
|
||||
<IconAudioFile />
|
||||
</div>
|
||||
<div className="search-stat-value">{filesInfo?.audios.check ? filesInfo?.audios.check : 0}</div>
|
||||
<div className="search-stat-label">
|
||||
{t('audios')}
|
||||
</div>
|
||||
</div>
|
||||
<div className="search-stat-item">
|
||||
<div className="search-stat-icon">📄</div>
|
||||
<div className="search-stat-value">0</div>
|
||||
<div className="search-stat-label">Документы</div>
|
||||
<div className="search-stat-icon">
|
||||
<IconDocument />
|
||||
</div>
|
||||
<div className="search-stat-value">{filesInfo?.documents.check ? filesInfo?.documents.check : 0}</div>
|
||||
<div className="search-stat-label">
|
||||
{t('documents')}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,55 +1,64 @@
|
||||
'use client'
|
||||
|
||||
|
||||
import { useTranslations } from 'next-intl';
|
||||
|
||||
export default function AnalyticsCardMonth() {
|
||||
const t = useTranslations('Global');
|
||||
|
||||
return (
|
||||
<div className="analytics-card">
|
||||
<div className="analytics-header">
|
||||
<div className="analytics-icon">📊</div>
|
||||
<h3 className="analytics-title">Активность по месяцам</h3>
|
||||
<div className="analytics-icon"></div>
|
||||
<h3 className="analytics-title">
|
||||
{t('activity-by-month')}
|
||||
</h3>
|
||||
</div>
|
||||
<div className="storage-timeline">
|
||||
<div className="timeline-item">
|
||||
<span className="timeline-month">📅 Июль</span>
|
||||
<span className="timeline-month">{t('july')}</span>
|
||||
<div className="timeline-stats">
|
||||
<span>0 файлов</span>
|
||||
<span>0 {t('files')}</span>
|
||||
<span>•</span>
|
||||
<span>0 Б</span>
|
||||
</div>
|
||||
</div>
|
||||
<div className="timeline-item">
|
||||
<span className="timeline-month">📅 Август</span>
|
||||
<span className="timeline-month">{t('august')}</span>
|
||||
<div className="timeline-stats">
|
||||
<span>0 файлов</span>
|
||||
<span>0 {t('files')}</span>
|
||||
<span>•</span>
|
||||
<span>0 Б</span>
|
||||
</div>
|
||||
</div>
|
||||
<div className="timeline-item">
|
||||
<span className="timeline-month">📅 Сентябрь</span>
|
||||
<span className="timeline-month">{t('september')}</span>
|
||||
<div className="timeline-stats">
|
||||
<span>0 файлов</span>
|
||||
<span>0 {t('files')}</span>
|
||||
<span>•</span>
|
||||
<span>0 Б</span>
|
||||
</div>
|
||||
</div>
|
||||
<div className="timeline-item">
|
||||
<span className="timeline-month">📅 Октябрь</span>
|
||||
<span className="timeline-month">{t('october')}</span>
|
||||
<div className="timeline-stats">
|
||||
<span>3 файлов</span>
|
||||
<span>0 {t('files')}</span>
|
||||
<span>•</span>
|
||||
<span>2.42 МБ</span>
|
||||
<span>0 Б</span>
|
||||
</div>
|
||||
</div>
|
||||
<div className="timeline-item">
|
||||
<span className="timeline-month">📅 Ноябрь</span>
|
||||
<span className="timeline-month">{t('november')}</span>
|
||||
<div className="timeline-stats">
|
||||
<span>14 файлов</span>
|
||||
<span>0 {t('files')}</span>
|
||||
<span>•</span>
|
||||
<span>43.53 МБ</span>
|
||||
<span>0 Б</span>
|
||||
</div>
|
||||
</div>
|
||||
<div className="timeline-item">
|
||||
<span className="timeline-month">📅 Декабрь</span>
|
||||
<span className="timeline-month">{t('december')}</span>
|
||||
<div className="timeline-stats">
|
||||
<span>0 файлов</span>
|
||||
<span>0 {t('files')}</span>
|
||||
<span>•</span>
|
||||
<span>0 Б</span>
|
||||
</div>
|
||||
|
||||
@@ -1,33 +1,53 @@
|
||||
'use client'
|
||||
|
||||
import { useTranslations } from 'next-intl'
|
||||
|
||||
export default function AnalyticsCardGeography() {
|
||||
const t = useTranslations('Global');
|
||||
|
||||
return (
|
||||
<div className="analytics-card">
|
||||
<div className="analytics-header">
|
||||
<div className="analytics-icon">🌍</div>
|
||||
<h3 className="analytics-title">География нарушений</h3>
|
||||
<div className="analytics-icon"></div>
|
||||
<h3 className="analytics-title">
|
||||
{t('geography-of-violations')}
|
||||
</h3>
|
||||
</div>
|
||||
<div className="storage-timeline">
|
||||
<div className="timeline-item">
|
||||
<span className="timeline-month">🇷🇺 Россия</span>
|
||||
<span className="timeline-month">
|
||||
{t('russia')}
|
||||
</span>
|
||||
<span className="method-count">0</span>
|
||||
</div>
|
||||
<div className="timeline-item">
|
||||
<span className="timeline-month">🇺🇸 США</span>
|
||||
<span className="timeline-month">
|
||||
{t('usa')}
|
||||
</span>
|
||||
<span className="method-count">0</span>
|
||||
</div>
|
||||
<div className="timeline-item">
|
||||
<span className="timeline-month">🇩🇪 Германия</span>
|
||||
<span className="timeline-month">
|
||||
{t('germany')}
|
||||
</span>
|
||||
<span className="method-count">0</span>
|
||||
</div>
|
||||
<div className="timeline-item">
|
||||
<span className="timeline-month">🇫🇷 Франция</span>
|
||||
<span className="timeline-month">
|
||||
{t('france')}
|
||||
</span>
|
||||
<span className="method-count">0</span>
|
||||
</div>
|
||||
<div className="timeline-item">
|
||||
<span className="timeline-month">🇬🇧 Великобритания</span>
|
||||
<span className="timeline-month">
|
||||
{t('uk')}
|
||||
</span>
|
||||
<span className="method-count">0</span>
|
||||
</div>
|
||||
<div className="timeline-item">
|
||||
<span className="timeline-month">🇨🇳 Китай</span>
|
||||
<span className="timeline-month">
|
||||
{t('china')}
|
||||
</span>
|
||||
<span className="method-count">0</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,32 +1,56 @@
|
||||
'use client'
|
||||
|
||||
import { useUserFilesInfo } from '@/app/hooks/react-query/useUserFilesInfo';
|
||||
import { useTranslations } from 'next-intl';
|
||||
import { useEffect } from 'react';
|
||||
|
||||
export default function FinalSummary() {
|
||||
const t = useTranslations('Global');
|
||||
const { data: filesInfo, isLoading, isError, error } = useUserFilesInfo();
|
||||
|
||||
return (
|
||||
<div className="final-summary">
|
||||
<div className="summary-header">
|
||||
<h2 className="summary-title">
|
||||
📈 Итоговая статистика за Декабрь 2025
|
||||
{t('summary-statistics')} {/* за Декабрь 2025 */}
|
||||
</h2>
|
||||
<p className="summary-subtitle">
|
||||
Общие показатели эффективности системы защиты
|
||||
{t('general-indicators-of-the-protection-system')}
|
||||
</p>
|
||||
</div>
|
||||
<div className="summary-stats">
|
||||
<div className="summary-stat">
|
||||
<div className="summary-stat-icon">🔍</div>
|
||||
<div className="summary-stat-value">0</div>
|
||||
<div className="summary-stat-label">Всего проверок</div>
|
||||
<div className="summary-stat-change">+15% к прошлому месяцу</div>
|
||||
{/* <div className="summary-stat-icon">🔍</div> */}
|
||||
<div className="summary-stat-value">{filesInfo?.total.check ? filesInfo?.total.check : 0}</div>
|
||||
<div className="summary-stat-label">
|
||||
{t('total-number-of-checks')}
|
||||
</div>
|
||||
{/* <div className="summary-stat-change">+15% к прошлому месяцу</div> */}
|
||||
</div>
|
||||
<div className="summary-stat center">
|
||||
{/* <div className="summary-stat-icon">🚨</div> */}
|
||||
<div>
|
||||
<div className="summary-stat-value">{filesInfo?.total.violation ? filesInfo?.total.violation : 0}</div>
|
||||
<div className="summary-stat-label">
|
||||
{t('violations-found')}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div className="summary-stat-value">0</div>
|
||||
<div className="summary-stat-label">
|
||||
{t('violations-registered')}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* <div className="summary-stat-change">Отличный результат!</div> */}
|
||||
</div>
|
||||
<div className="summary-stat">
|
||||
<div className="summary-stat-icon">🚨</div>
|
||||
<div className="summary-stat-value">0</div>
|
||||
<div className="summary-stat-label">Нарушений найдено</div>
|
||||
<div className="summary-stat-change">Отличный результат!</div>
|
||||
</div>
|
||||
<div className="summary-stat">
|
||||
<div className="summary-stat-icon">🛡️</div>
|
||||
<div className="summary-stat-value">0</div>
|
||||
<div className="summary-stat-label">Защищенного контента</div>
|
||||
<div className="summary-stat-change">+0 за период</div>
|
||||
{/* <div className="summary-stat-icon">🛡️</div> */}
|
||||
<div className="summary-stat-value">{filesInfo?.total.quantity ? filesInfo?.total.quantity : 0}</div>
|
||||
<div className="summary-stat-label">
|
||||
{t('protected-content')}
|
||||
</div>
|
||||
{/* <div className="summary-stat-change">+0 за период</div> */}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -6,8 +6,6 @@ import {IconDocument, IconSearch, IconWarning, IconGraph} from '@/app/ui/icons/i
|
||||
|
||||
export default function ReportsInfo() {
|
||||
const t = useTranslations("Global");
|
||||
|
||||
|
||||
const { data: filesInfo, isLoading, isError, error } = useUserFilesInfo();
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user