change general info block
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import DashboardGeneralInfo from '@/app/ui/dashboard-general-info';
|
||||
import UsersTop from '@/app/ui/users-top';
|
||||
import SubscriptionsStatistic from '@/app/ui/subscriptions-statistic';
|
||||
import DashboardGeneralInfo from '@/app/ui/dashboard/dashboard-general-info';
|
||||
import UsersTop from '@/app/ui/dashboard/users-top';
|
||||
import SubscriptionsStatistic from '@/app/ui/dashboard/subscriptions-statistic';
|
||||
export default function Page() {
|
||||
return (
|
||||
<div>
|
||||
|
||||
@@ -311,13 +311,12 @@
|
||||
}
|
||||
|
||||
.dashboard-general-info {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
||||
gap: 20px;
|
||||
margin-bottom: 24px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.users-top {
|
||||
margin-bottom: 20px;
|
||||
|
||||
&-user {
|
||||
font-weight: 500;
|
||||
}
|
||||
@@ -464,9 +463,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
.stats-title {
|
||||
font-size: 18px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.stats-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
||||
grid-template-columns: repeat(4, minmax(240px, 1fr));
|
||||
gap: 20px;
|
||||
margin-bottom: 24px;
|
||||
|
||||
@@ -483,11 +487,15 @@
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.stat-card-header {
|
||||
.stat-card-group {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 12px;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.stat-card-title {
|
||||
@@ -498,7 +506,7 @@
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
.stat-card-icon {
|
||||
.stat-card-value {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 10px;
|
||||
@@ -510,12 +518,12 @@
|
||||
background: #eff6ff;
|
||||
}
|
||||
|
||||
.stat-card-value {
|
||||
/* .stat-card-value {
|
||||
font-size: 32px;
|
||||
font-weight: 700;
|
||||
color: var(--text-primary);
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
} */
|
||||
|
||||
.stat-card-label {
|
||||
font-size: 12px;
|
||||
|
||||
@@ -8,7 +8,7 @@ export default function AdminHeaderPanel() {
|
||||
<h2>Панель администратора</h2>
|
||||
</div>
|
||||
<div className="admin-header-right">
|
||||
<LanguageSwitcher />
|
||||
{/* <LanguageSwitcher /> */}
|
||||
<div className="admin-user-info">
|
||||
<div className="admin-user-avatar">
|
||||
+
|
||||
|
||||
@@ -1,140 +0,0 @@
|
||||
export default function DashboardGeneralInfo() {
|
||||
return (
|
||||
<div className="stats-grid">
|
||||
<div className="stat-card">
|
||||
<div className="stat-card-header">
|
||||
<span className="stat-card-title">Всего пользователей</span>
|
||||
<div className="stat-card-icon"></div>
|
||||
</div>
|
||||
<div className="stat-card-value">0</div>
|
||||
<div className="stat-card-label">Зарегистрировано в системе</div>
|
||||
<div className="stat-card-footer">
|
||||
Активных за месяц: 0</div>
|
||||
</div>
|
||||
|
||||
<div className="stat-card">
|
||||
<div className="stat-card-header">
|
||||
<span className="stat-card-title">Активные подписчики</span>
|
||||
<div className="stat-card-icon"></div>
|
||||
</div>
|
||||
<div className="stat-card-value">0</div>
|
||||
<div className="stat-card-label">Платные подписки</div>
|
||||
<div className="stat-card-footer">
|
||||
Конверсия: 0%
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="stat-card">
|
||||
<div className="stat-card-header">
|
||||
<span className="stat-card-title">Защищенный контент</span>
|
||||
<div className="stat-card-icon"></div>
|
||||
</div>
|
||||
<div className="stat-card-value">0</div>
|
||||
<div className="stat-card-label">Файлов защищено</div>
|
||||
<div className="stat-card-footer">
|
||||
Всего файлов: 0</div>
|
||||
</div>
|
||||
|
||||
<div className="stat-card">
|
||||
<div className="stat-card-header">
|
||||
<span className="stat-card-title">Нарушения</span>
|
||||
<div className="stat-card-icon"></div>
|
||||
</div>
|
||||
<div className="stat-card-value">0</div>
|
||||
<div className="stat-card-label">Обнаружено нарушений</div>
|
||||
<div className="stat-card-footer">
|
||||
На рассмотрении: 0</div>
|
||||
</div>
|
||||
|
||||
<div className="stat-card">
|
||||
<div className="stat-card-header">
|
||||
<span className="stat-card-title">Токены сегодня</span>
|
||||
<div className="stat-card-icon"></div>
|
||||
</div>
|
||||
<div className="stat-card-value">0</div>
|
||||
<div className="stat-card-label">Пополнено токенов</div>
|
||||
<div className="stat-card-footer">
|
||||
За неделю: 0 </div>
|
||||
</div>
|
||||
|
||||
<div className="stat-card">
|
||||
<div className="stat-card-header">
|
||||
<span className="stat-card-title">Токены месяц</span>
|
||||
<div className="stat-card-icon"></div>
|
||||
</div>
|
||||
<div className="stat-card-value">0</div>
|
||||
<div className="stat-card-label">Пополнено за месяц</div>
|
||||
<div className="stat-card-footer">
|
||||
Потрачено: 0 </div>
|
||||
</div>
|
||||
|
||||
<div className="stat-card">
|
||||
<div className="stat-card-header">
|
||||
<span className="stat-card-title">Доход сегодня</span>
|
||||
<div className="stat-card-icon"></div>
|
||||
</div>
|
||||
<div className="stat-card-value">₽0</div>
|
||||
<div className="stat-card-label">Заработано сегодня</div>
|
||||
<div className="stat-card-footer">
|
||||
За неделю: ₽0 </div>
|
||||
</div>
|
||||
|
||||
<div className="stat-card">
|
||||
<div className="stat-card-header">
|
||||
<span className="stat-card-title">Доход месяц</span>
|
||||
<div className="stat-card-icon"></div>
|
||||
</div>
|
||||
<div className="stat-card-value">₽0</div>
|
||||
<div className="stat-card-label">Заработано за месяц</div>
|
||||
<div className="stat-card-footer">
|
||||
Всего: ₽0 </div>
|
||||
</div>
|
||||
|
||||
<div className="stat-card">
|
||||
<div className="stat-card-header">
|
||||
<span className="stat-card-title">Траты токенов день</span>
|
||||
<div className="stat-card-icon"></div>
|
||||
</div>
|
||||
<div className="stat-card-value">0</div>
|
||||
<div className="stat-card-label">Потрачено сегодня</div>
|
||||
<div className="stat-card-footer">
|
||||
За неделю: 0 </div>
|
||||
</div>
|
||||
|
||||
<div className="stat-card">
|
||||
<div className="stat-card-header">
|
||||
<span className="stat-card-title">Траты токенов год</span>
|
||||
<div className="stat-card-icon"></div>
|
||||
</div>
|
||||
<div className="stat-card-value">0</div>
|
||||
<div className="stat-card-label">Потрачено за год</div>
|
||||
<div className="stat-card-footer">
|
||||
За месяц: 0 </div>
|
||||
</div>
|
||||
|
||||
<div className="stat-card">
|
||||
<div className="stat-card-header">
|
||||
<span className="stat-card-title">DMCA жалобы</span>
|
||||
<div className="stat-card-icon"></div>
|
||||
</div>
|
||||
<div className="stat-card-value">0</div>
|
||||
<div className="stat-card-label">Всего жалоб</div>
|
||||
<div className="stat-card-footer">
|
||||
Успешно: 0 | Ожидает: 1
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="stat-card">
|
||||
<div className="stat-card-header">
|
||||
<span className="stat-card-title">Использование диска</span>
|
||||
<div className="stat-card-icon"></div>
|
||||
</div>
|
||||
<div className="stat-card-value">0.0 GB</div>
|
||||
<div className="stat-card-label">Занято на диске</div>
|
||||
<div className="stat-card-footer">
|
||||
Файлов: 0</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -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>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user