change general info block

This commit is contained in:
smanylov
2026-04-08 16:35:13 +07:00
parent affe9699df
commit c9f4c724d9
13 changed files with 338 additions and 153 deletions
@@ -0,0 +1,24 @@
'use client'
import GeneralInfoUsers from '@/app/ui/dashboard/general-info.tsx/general-info-users';
import GeneralInfoSubscriptions from '@/app/ui/dashboard/general-info.tsx/general-info-subscriptions';
import GeneralInfoContent from '@/app/ui/dashboard/general-info.tsx/general-info-content';
import GeneralInfoViolations from '@/app/ui/dashboard/general-info.tsx/general-info-violations';
import GeneralInfoTokens from '@/app/ui/dashboard/general-info.tsx/general-info-tokens';
import GeneralInfoIncome from '@/app/ui/dashboard/general-info.tsx/general-info-income';
export default function DashboardGeneralInfo() {
return (
<div
className="dashboard-general-info"
>
<GeneralInfoUsers />
<GeneralInfoSubscriptions />
<GeneralInfoContent />
<GeneralInfoViolations />
<GeneralInfoTokens />
<GeneralInfoIncome />
</div>
)
}
@@ -0,0 +1,47 @@
export default function GeneralInfoContent() {
return (
<div>
<h4
className="stats-title"
>
Защищенный контент (месяц/год)
</h4>
<div className="stats-grid">
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Всего файлов этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">В прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Всего занято места в этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">В прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Файлов на пользователя</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">Места на диске на пользователя</span>
<div className="stat-card-value">0</div>
</div>
</div>
</div>
</div>
)
}
@@ -0,0 +1,47 @@
export default function GeneralInfoIncome() {
return (
<div>
<h4
className="stats-title"
>
Доход (день/месяц)
</h4>
<div className="stats-grid">
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Всего заработано в этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">В прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Всего заработано на любого пользователя в этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">В прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Всего заработано на платного пользователя в этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">В прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
</div>
</div>
)
}
@@ -0,0 +1,66 @@
export default function GeneralInfoSubscriptions() {
return (
<div>
<h4
className="stats-title"
>
Активные подписчики (месяц/год)
</h4>
<div className="stats-grid">
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Текущие платные подписки</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">оформили впервые в этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">в прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">продлили подпискув этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">в прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">сделали апгрейдв этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">в прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">сделали даунгрейдв этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">в прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
</div>
</div>
)
}
@@ -0,0 +1,58 @@
export default function GeneralInfoTokens() {
return (
<div>
<h4
className="stats-title"
>
Токены (день/месяц)
</h4>
<div className="stats-grid">
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Всего купленов этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">В прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Всего потраченов этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">В прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Куплено на пользователя в этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">В прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Потрачено на пользователя в этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">В прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
</div>
</div>
)
}
@@ -0,0 +1,39 @@
export default function GeneralInfoUsers() {
return (
<div>
<h4
className="stats-title"
>
Кол-во пользователей и динамика
</h4>
<div className="stats-grid">
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Всего пользователей</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Новых за текущий месяц</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">Новых за прошлый месяц</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Дельта</span>
<div className="stat-card-value">0</div>
</div>
</div>
</div>
</div>
)
}
@@ -0,0 +1,36 @@
export default function GeneralInfoViolations() {
return (
<div>
<h4
className="stats-title"
>
Нарушения (день/месяц)
</h4>
<div className="stats-grid">
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Всего нарушений в этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">В прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
<div className="stat-card">
<div className="stat-card-group">
<span className="stat-card-title">Подано жалоб в этом месяце</span>
<div className="stat-card-value">0</div>
</div>
<div className="stat-card-group">
<span className="stat-card-title">В прошлом месяце</span>
<div className="stat-card-value">0</div>
</div>
</div>
</div>
</div>
)
}
@@ -0,0 +1,49 @@
export default function SubscriptionsStatistic() {
return (
<div className="admin-content">
<div className="content-header">
<h3>Статистика подписок</h3>
</div>
<div className="content-body">
<table className="admin-table">
<thead>
<tr>
<th>Тариф</th>
<th>Пользователей</th>
<th>Доля</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<span className="badge badge-primary">
СТАРТ
</span>
</td>
<td>0</td>
<td>0%</td>
</tr>
<tr>
<td>
<span className="badge badge-primary">
ДЕМО
</span>
</td>
<td>0</td>
<td>0%</td>
</tr>
<tr>
<td>
<span className="badge badge-primary">
ПРОФИ
</span>
</td>
<td>0</td>
<td>0%</td>
</tr>
</tbody>
</table>
</div>
</div>
)
}
+54
View File
@@ -0,0 +1,54 @@
export default function UsersTop() {
return (
<div className="admin-content users-top">
<div className="content-header">
<h3>Топ пользователей</h3>
</div>
<div className="content-body">
<table className="admin-table">
<thead>
<tr>
<th>Пользователь</th>
<th>Файлов</th>
<th>Размер</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div className="users-top-user">Сидоров Станислав Андреевич</div>
<div className="users-top-mail">Info@pro-ctrl.ru</div>
</td>
<td>0</td>
<td>0 MB</td>
</tr>
<tr>
<td>
<div className="users-top-user">Валерка</div>
<div className="users-top-mail">va@no-copy.ru</div>
</td>
<td>0</td>
<td>0 MB</td>
</tr>
<tr>
<td>
<div className="users-top-user">Игорь Викторович</div>
<div className="users-top-mail">igor@pro-ctrl.ru</div>
</td>
<td>0</td>
<td>0 MB</td>
</tr>
<tr>
<td>
<div className="users-top-user">Синицын Игорь Владимирович</div>
<div className="users-top-mail">admin@no-copy.ru</div>
</td>
<td>0</td>
<td>0 MB</td>
</tr>
</tbody>
</table>
</div>
</div>
)
}