add endpoins for dashboard-files-info
This commit is contained in:
@@ -1,82 +1,109 @@
|
||||
'use client'
|
||||
|
||||
import { useTranslations } from 'next-intl';
|
||||
import { useQuery } from '@tanstack/react-query';
|
||||
import { getUserFilesInfo } from '@/app/actions/action';
|
||||
import {convertBytes} from '@/app/lib/convertBytes';
|
||||
|
||||
export default function DashboardFilesInfo() {
|
||||
const t = useTranslations("Global");
|
||||
|
||||
const {
|
||||
data: filesInfo,
|
||||
isLoading,
|
||||
isError,
|
||||
error,
|
||||
} = useQuery({
|
||||
queryKey: ['userFilesInfo'],
|
||||
queryFn: getUserFilesInfo,
|
||||
});
|
||||
|
||||
return (
|
||||
<div className="dashboard-files-info">
|
||||
<div className="type-card images" data-icon="🖼️">
|
||||
<div className="stat-type">ИЗОБРАЖЕНИЯ</div>
|
||||
<div className="stat-value">235</div>
|
||||
<div className="stat-label">Ваши изображения</div>
|
||||
<div className="type-card images">
|
||||
<div className="stat-type">
|
||||
{t('images')}
|
||||
</div>
|
||||
<div className="stat-value">{filesInfo.images_quantity ? filesInfo.images_quantity : 0}</div>
|
||||
<div className="stat-label">{t('your-image')}</div>
|
||||
<div className="type-card-stats">
|
||||
<div className="type-card-stat-row">
|
||||
<span className="type-card-stat-label">💾 Размер</span>
|
||||
<span className="type-card-stat-value">340.5 МБ</span>
|
||||
<span className="type-card-stat-label">{t('size')}</span>
|
||||
<span className="type-card-stat-value">{filesInfo.images_size ? convertBytes(filesInfo.images_size) : 0}</span>
|
||||
</div>
|
||||
<div className="type-card-stat-row">
|
||||
<span className="type-card-stat-label">🛡️ Защищено</span>
|
||||
<span className="type-card-stat-value">233 файлов</span>
|
||||
<span className="type-card-stat-label">{t('checks')}</span>
|
||||
<span className="type-card-stat-value">{filesInfo.images_check ? filesInfo.images_check : 0}</span>
|
||||
</div>
|
||||
<div className="type-card-stat-row">
|
||||
<span className="type-card-stat-label">⚠️ Нарушений</span>
|
||||
<span className="type-card-stat-value">504</span>
|
||||
<span className="type-card-stat-label">{t('violations')}</span>
|
||||
<span className="type-card-stat-value">{filesInfo.images_violations ? filesInfo.images_violations : 0}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="type-card videos" data-icon="🎬">
|
||||
<div className="stat-type">ВИДЕО</div>
|
||||
<div className="stat-value">25</div>
|
||||
<div className="stat-label">Ваш видео контент</div>
|
||||
<div className="type-card videos">
|
||||
<div className="stat-type">
|
||||
{t('videos')}
|
||||
</div>
|
||||
<div className="stat-value">{filesInfo.videos_quantity ? filesInfo.videos_quantity : 0}</div>
|
||||
<div className="stat-label">{t('your-videos')}</div>
|
||||
<div className="type-card-stats">
|
||||
<div className="type-card-stat-row">
|
||||
<span className="type-card-stat-label">💾 Размер</span>
|
||||
<span className="type-card-stat-value">196.9 МБ</span>
|
||||
<span className="type-card-stat-label">{t('size')}</span>
|
||||
<span className="type-card-stat-value">{filesInfo.videos_size ? convertBytes(filesInfo.videos_size) : 0}</span>
|
||||
</div>
|
||||
<div className="type-card-stat-row">
|
||||
<span className="type-card-stat-label">🛡️ Защищено</span>
|
||||
<span className="type-card-stat-value">23 файлов</span>
|
||||
<span className="type-card-stat-label">{t('checks')}</span>
|
||||
<span className="type-card-stat-value">{filesInfo.videos_check ? filesInfo.videos_check : 0}</span>
|
||||
</div>
|
||||
<div className="type-card-stat-row">
|
||||
<span className="type-card-stat-label">⚠️ Нарушений</span>
|
||||
<span className="type-card-stat-value">0</span>
|
||||
<span className="type-card-stat-label">{t('violations')}</span>
|
||||
<span className="type-card-stat-value">{filesInfo.videos_violations ? filesInfo.videos_violations : 0}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="type-card audio" data-icon="🎵">
|
||||
<div className="stat-type">АУДИО</div>
|
||||
<div className="stat-value">43</div>
|
||||
<div className="stat-label">Ваш аудио контент</div>
|
||||
<div className="type-card audio">
|
||||
<div className="stat-type">
|
||||
{t('audios')}
|
||||
</div>
|
||||
<div className="stat-value">{filesInfo.audios_quantity ? filesInfo.audios_quantity : 0}</div>
|
||||
<div className="stat-label">{t('your-audios')}</div>
|
||||
<div className="type-card-stats">
|
||||
<div className="type-card-stat-row">
|
||||
<span className="type-card-stat-label">💾 Размер</span>
|
||||
<span className="type-card-stat-value">223.7 МБ</span>
|
||||
<span className="type-card-stat-label">{t('size')}</span>
|
||||
<span className="type-card-stat-value">{filesInfo.audios_size ? convertBytes(filesInfo.audios_size) : 0}</span>
|
||||
</div>
|
||||
<div className="type-card-stat-row">
|
||||
<span className="type-card-stat-label">🛡️ Защищено</span>
|
||||
<span className="type-card-stat-value">36 файлов</span>
|
||||
<span className="type-card-stat-label">{t('checks')}</span>
|
||||
<span className="type-card-stat-value">{filesInfo.audios_check ? filesInfo.audios_check : 0}</span>
|
||||
</div>
|
||||
<div className="type-card-stat-row">
|
||||
<span className="type-card-stat-label">⚠️ Нарушений</span>
|
||||
<span className="type-card-stat-value">0</span>
|
||||
<span className="type-card-stat-label">{t('violations')}</span>
|
||||
<span className="type-card-stat-value">{filesInfo.audios_violations ? filesInfo.audios_violations : 0}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="type-card scripts" data-icon="📄">
|
||||
<div className="stat-type">PDF-ФАЙЛЫ</div>
|
||||
<div className="stat-value">73</div>
|
||||
<div className="stat-label">Ваши PDF-файлы</div>
|
||||
<div className="type-card scripts">
|
||||
<div className="stat-type">
|
||||
{t('documents')}
|
||||
</div>
|
||||
<div className="stat-value">{filesInfo.documents_quantity ? filesInfo.documents_quantity : 0}</div>
|
||||
<div className="stat-label">{t('your-documents')}</div>
|
||||
<div className="type-card-stats">
|
||||
<div className="type-card-stat-row">
|
||||
<span className="type-card-stat-label">💾 Размер</span>
|
||||
<span className="type-card-stat-value">28.9 МБ</span>
|
||||
<span className="type-card-stat-label">{t('size')}</span>
|
||||
<span className="type-card-stat-value">{filesInfo.documents_check ? convertBytes(filesInfo.documents_check) : 0}</span>
|
||||
</div>
|
||||
<div className="type-card-stat-row">
|
||||
<span className="type-card-stat-label">🛡️ Защищено</span>
|
||||
<span className="type-card-stat-value">70 файлов</span>
|
||||
<span className="type-card-stat-label">{t('checks')}</span>
|
||||
<span className="type-card-stat-value">{filesInfo.documents_check ? filesInfo.documents_check : 0}</span>
|
||||
</div>
|
||||
<div className="type-card-stat-row">
|
||||
<span className="type-card-stat-label">⚠️ Нарушений</span>
|
||||
<span className="type-card-stat-value">0</span>
|
||||
<span className="type-card-stat-label">{t('violations')}</span>
|
||||
<span className="type-card-stat-value">{filesInfo.documents_violations ? filesInfo.documents_violations : 0}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user