reafactor

This commit is contained in:
smanylov
2026-01-14 12:48:33 +07:00
parent e4d6df71a1
commit e53a85caa2
6 changed files with 30 additions and 16 deletions
+1 -4
View File
@@ -1,7 +1,5 @@
import { Metadata } from 'next'; import { Metadata } from 'next';
import { Suspense } from 'react'; import { Suspense } from 'react';
import ProtectionOverview from '@/app/ui/dashboard/protection-overview';
import StatsGrid from '@/app/ui/dashboard/stats-grid';
import { useTranslations } from 'next-intl'; import { useTranslations } from 'next-intl';
import FilesTable from '@/app/ui/dashboard/files-table'; import FilesTable from '@/app/ui/dashboard/files-table';
import PageTitle from '@/app/ui/page-title'; import PageTitle from '@/app/ui/page-title';
@@ -23,8 +21,7 @@ export default function Page() {
return ( return (
<Suspense fallback={<>...</>}> <Suspense fallback={<>...</>}>
<PageTitle title="statistics"> <PageTitle title="statistics" />
</PageTitle>
<DashboardUserStats /> <DashboardUserStats />
<div className="dashboard-main-grid"> <div className="dashboard-main-grid">
<div className="left-column"> <div className="left-column">
+1 -2
View File
@@ -16,8 +16,7 @@ export default function Page() {
return ( return (
<> <>
<Suspense fallback={<>...</>}> <Suspense fallback={<>...</>}>
<PageTitle title="statistics"> <PageTitle title="statistics" />
</PageTitle>
<div className="split-blocks"> <div className="split-blocks">
<ProtectionOverview /> <ProtectionOverview />
<StatsGrid /> <StatsGrid />
+1 -2
View File
@@ -13,8 +13,7 @@ export default function Page() {
return ( return (
<Suspense fallback={<>...</>}> <Suspense fallback={<>...</>}>
<PageTitle title="refferal-program"> <PageTitle title="refferal-program" />
</PageTitle>
<ReferralStats /> <ReferralStats />
<ReferralLinkSection /> <ReferralLinkSection />
<CommissionLevels /> <CommissionLevels />
+1 -2
View File
@@ -9,8 +9,7 @@ import PageTitle from '@/app/ui/page-title';
export default function Page() { export default function Page() {
return ( return (
<div> <div>
<PageTitle title="reports-and-analytics"> <PageTitle title="reports-and-analytics" />
</PageTitle>
<StatsGrid /> <StatsGrid />
<ActivityByContentType /> <ActivityByContentType />
<div className="analytics-grid"> <div className="analytics-grid">
+1 -2
View File
@@ -13,8 +13,7 @@ export default function Page() {
return ( return (
<> <>
<PageTitle title="account-settings"> <PageTitle title="account-settings" />
</PageTitle>
<div className="settings-grid"> <div className="settings-grid">
<PersonalDataSettings /> <PersonalDataSettings />
<NotificationsMonitoringSettings /> <NotificationsMonitoringSettings />
@@ -1,31 +1,52 @@
'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 DashboardUserStats() { export default function DashboardUserStats() {
const t = useTranslations("Global");
const {
data: filesInfo,
isLoading,
isError,
error,
} = useQuery({
queryKey: ['userFilesInfo'],
queryFn: getUserFilesInfo,
});
return ( return (
<div className="dashboard-user-stats"> <div className="dashboard-user-stats">
<div className="stat-card projects"> <div className="stat-card projects">
<div className="stat-type">ЗАЩИЩЁННЫЕ ФАЙЛЫ</div> <div className="stat-type">ЗАЩИЩЁННЫЕ ФАЙЛЫ</div>
<div className="stat-value">367</div> <div className="stat-value">0</div>
<div className="stat-label">Файлов под защитой</div> <div className="stat-label">Файлов под защитой</div>
<div className="stat-icon">🛡</div> <div className="stat-icon">🛡</div>
</div> </div>
<div className="stat-card matches"> <div className="stat-card matches">
<div className="stat-type">СОВПАДЕНИЯ</div> <div className="stat-type">СОВПАДЕНИЯ</div>
<div className="stat-value">520</div> <div className="stat-value">0</div>
<div className="stat-label">Найдено совпадений</div> <div className="stat-label">Найдено совпадений</div>
<div className="stat-icon">🔍</div> <div className="stat-icon">🔍</div>
</div> </div>
<div className="stat-card violations"> <div className="stat-card violations">
<div className="stat-type">НАРУШЕНИЯ</div> <div className="stat-type">НАРУШЕНИЯ</div>
<div className="stat-value">499</div> <div className="stat-value">{filesInfo.all_files_violations ? filesInfo.all_files_violations : 0}</div>
<div className="stat-label">Требуют внимания</div> <div className="stat-label">Требуют внимания</div>
<div className="stat-icon"></div> <div className="stat-icon"></div>
</div> </div>
<div className="stat-card storage"> <div className="stat-card storage">
<div className="stat-type">ХРАНИЛИЩЕ</div> <div className="stat-type">ХРАНИЛИЩЕ</div>
<div className="stat-value">790.2 MB</div> <div className="stat-value">
{filesInfo.all_files_size ? convertBytes(filesInfo.all_files_size) : 0}
</div>
<div className="stat-label">Использовано места</div> <div className="stat-label">Использовано места</div>
<div className="stat-icon">💾</div> <div className="stat-icon">💾</div>
</div> </div>