diff --git a/src/app/[locale]/admin-panel/layout.tsx b/src/app/[locale]/admin-panel/layout.tsx deleted file mode 100644 index 3e23d78..0000000 --- a/src/app/[locale]/admin-panel/layout.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import AdminNavLinks from '@/app/ui/admin-panel/admin-nav-links' -import { getQueryClient } from '@/app/providers/getQueryClient'; -import { HydrationBoundary, dehydrate } from '@tanstack/react-query'; -import { prefetchLayoutQueries } from '@/app/lib/prefetch-queries'; -import AdminHeaderPanel from '@/app/ui/admin-panel/admin-header-panel'; -import "../../styles/admin-panel.scss" - -export default async function Layout({ children }: { children: React.ReactNode }) { - const queryClient = getQueryClient(); - - await prefetchLayoutQueries(queryClient); - - return ( -
- - -
- -
- {children} -
-
-
-
- ); -} \ No newline at end of file diff --git a/src/app/[locale]/admin-panel/page.tsx b/src/app/[locale]/admin-panel/page.tsx deleted file mode 100644 index bf7e63f..0000000 --- a/src/app/[locale]/admin-panel/page.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import DashboardGeneralInfo from '@/app/ui/admin-panel/dashboard-general-info'; -import UsersTop from '@/app/ui/admin-panel/users-top'; -import SubscriptionsStatistic from '@/app/ui/admin-panel/subscriptions-statistic'; -export default function Page() { - return ( -
- -
- - -
-
- ) -} \ No newline at end of file diff --git a/src/app/[locale]/admin-panel/subscriptions/page.tsx b/src/app/[locale]/admin-panel/subscriptions/page.tsx deleted file mode 100644 index c635711..0000000 --- a/src/app/[locale]/admin-panel/subscriptions/page.tsx +++ /dev/null @@ -1,7 +0,0 @@ -export default function Page() { - return ( -
- subscriptions-page -
- ) -} \ No newline at end of file diff --git a/src/app/[locale]/admin-panel/users/page.tsx b/src/app/[locale]/admin-panel/users/page.tsx deleted file mode 100644 index debcce9..0000000 --- a/src/app/[locale]/admin-panel/users/page.tsx +++ /dev/null @@ -1,7 +0,0 @@ -export default function Page() { - return ( -
- users-page -
- ) -} \ No newline at end of file diff --git a/src/app/styles/admin-panel.scss b/src/app/styles/admin-panel.scss deleted file mode 100644 index c127ac6..0000000 --- a/src/app/styles/admin-panel.scss +++ /dev/null @@ -1,312 +0,0 @@ -@use './variable.scss' as v; - -:root { - --primary-color: #2563eb; - --primary-hover: #1d4ed8; - --secondary-color: #64748b; - --success-color: #10b981; - --danger-color: #ef4444; - --warning-color: #f59e0b; - --info-color: #3b82f6; - --background: #f8fafc; - --surface: #ffffff; - --border: #e2e8f0; - --text-primary: #0f172a; - --text-secondary: #64748b; - --shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - --shadow-lg: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); -} - -.admin-panel { - .admin-sidebar { - width: 280px; - background: var(--surface); - border-right: 1px solid var(--border); - position: fixed; - height: 100vh; - overflow-y: auto; - z-index: 1000; - - .admin-nav { - padding: 16px 0; - } - - .admin-logo { - padding: 24px 20px; - border-bottom: 1px solid var(--border); - - h1 { - font-size: 20px; - font-weight: 700; - color: var(--primary-color); - } - - p { - font-size: 12px; - color: var(--text-secondary); - margin-top: 4px; - } - } - - .admin-nav-item { - padding: 12px 20px; - cursor: pointer; - transition: all 0.2s; - border-left: 3px solid transparent; - display: flex; - align-items: center; - gap: 12px; - color: var(--text-secondary); - font-size: 14px; - font-weight: 500; - - svg { - font-size: 18px; - width: 24px; - text-align: center; - color: var(--primary-color); - } - - &.active { - background: #eff6ff; - color: var(--primary-color); - border-left-color: var(--primary-color); - } - } - } - - .admin-header { - background: var(--surface); - padding: 20px 24px; - border-radius: 12px; - margin-bottom: 24px; - box-shadow: var(--shadow); - display: flex; - justify-content: space-between; - align-items: center; - flex-wrap: wrap; - gap: 16px; - - .admin-header-left { - h2 { - font-size: 24px; - font-weight: 700; - margin-bottom: 4px; - } - - p { - color: var(--text-secondary); - font-size: 14px; - } - } - - .admin-user-info { - display: flex; - align-items: center; - gap: 10px; - padding: 6px 16px; - background: var(--background); - border-radius: 8px; - border: 1px solid var(--border); - } - - .admin-header-right { - display: flex; - gap: 12px; - align-items: center; - flex-wrap: wrap; - } - - .admin-user-details span { - display: block; - font-size: 13px; - } - - .admin-user-details .role { - color: var(--text-secondary); - font-size: 11px; - text-transform: uppercase; - letter-spacing: 0.5px; - } - - .admin-user-details .name { - font-weight: 600; - color: var(--text-primary); - } - } - - .admin-main { - flex: 1; - margin-left: 280px; - width: calc(100% - 280px); - padding: 24px; - max-width: 100%; - overflow-x: hidden; - } - - .btn-primary { - background: var(--primary-color); - color: white; - } - - .btn { - padding: 12px 24px; - border-radius: 8px; - font-size: 14px; - font-weight: 500; - cursor: pointer; - transition: all 0.2s; - display: inline-flex; - align-items: center; - gap: 8px; - text-decoration: none; - white-space: nowrap; - } - - .switcher-btn { - border: 2px solid var(--primary-color); - color: var(--primary-color); - padding: 12px 24px; - - .switcher-list { - background-color: v.$white; - border: 2px solid var(--primary-color); - } - } - - .dashboard-general-info { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); - gap: 20px; - margin-bottom: 24px; - - .stat-card { - background: var(--surface); - padding: 20px; - border-radius: 12px; - box-shadow: var(--shadow); - transition: all 0.3s; - border: 1px solid var(--border); - } - - .stat-card { - background: var(--surface); - padding: 20px; - border-radius: 12px; - box-shadow: var(--shadow); - transition: all 0.3s; - border: 1px solid var(--border); - } - - .stat-card-header { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 12px; - } - - .stat-card-value { - font-size: 32px; - font-weight: 700; - color: var(--text-primary); - margin-bottom: 4px; - } - - .stat-card-label { - font-size: 12px; - color: var(--text-secondary); - } - - .stat-card-footer { - margin-top: 12px; - padding-top: 12px; - border-top: 1px solid var(--border); - font-size: 12px; - color: var(--text-secondary); - } - } - - .admin-content { - background: var(--surface); - border-radius: 12px; - box-shadow: var(--shadow); - overflow: hidden; - - .content-header { - padding: 20px 24px; - border-bottom: 1px solid var(--border); - display: flex; - justify-content: space-between; - align-items: center; - flex-wrap: wrap; - gap: 12px; - - h3 { - font-size: 18px; - font-weight: 600; - } - } - - .content-body { - padding: 24px; - max-width: 100%; - overflow-x: auto; - } - - .admin-table { - width: 100%; - border-collapse: collapse; - font-size: 14px; - min-width: 800px; - - thead { - background: var(--background); - } - - th { - padding: 12px 16px; - text-align: left; - font-weight: 600; - color: var(--text-secondary); - font-size: 12px; - text-transform: uppercase; - letter-spacing: 0.5px; - border-bottom: 2px solid var(--border); - } - - td { - padding: 12px 16px; - border-bottom: 1px solid var(--border); - color: var(--text-primary); - } - - tbody tr { - transition: background 0.2s; - } - - .badge { - padding: 4px 12px; - border-radius: 12px; - font-size: 12px; - font-weight: 500; - display: inline-block; - } - - .badge-primary { - background: #eff6ff; - color: var(--primary-color); - } - } - } - - .users-top { - &-user { - font-weight: 500; - } - - &-mail { - font-size: 12px; - color: var(--text-secondary); - } - } -} \ No newline at end of file diff --git a/src/app/ui/admin-panel/admin-header-panel.tsx b/src/app/ui/admin-panel/admin-header-panel.tsx deleted file mode 100644 index 127112e..0000000 --- a/src/app/ui/admin-panel/admin-header-panel.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import Link from 'next/link'; -import LanguageSwitcher from '@/app/components/LanguageSwitcher'; - -export default function AdminHeaderPanel() { - return ( -
-
-

Панель администратора

-
-
- -
-
- + -
-
- name name name - role -
-
- - На главную - -
-
- ) -} \ No newline at end of file diff --git a/src/app/ui/admin-panel/admin-nav-links.tsx b/src/app/ui/admin-panel/admin-nav-links.tsx deleted file mode 100644 index 90b0598..0000000 --- a/src/app/ui/admin-panel/admin-nav-links.tsx +++ /dev/null @@ -1,77 +0,0 @@ -'use client'; - -import Link from 'next/link'; -import { usePathname } from 'next/navigation'; -import clsx from 'clsx'; -import { logout } from '@/app/actions/auth'; -import { useTranslations } from 'next-intl'; - -export default function AdminNavLinks() { - const pathname = usePathname().replace('/en/', '/').replace('/ru/', '/'); - const t = useTranslations('Global'); - - const links = [ - { - name: 'dashboard', - href: '/admin-panel', - img: 'M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z' - }, - { - name: 'users', - href: '/admin-panel/users', - img: 'M16 17v2H2v-2s0-4 7-4s7 4 7 4m-3.5-9.5A3.5 3.5 0 1 0 9 11a3.5 3.5 0 0 0 3.5-3.5m3.44 5.5A5.32 5.32 0 0 1 18 17v2h4v-2s0-3.63-6.06-4M15 4a3.4 3.4 0 0 0-1.93.59a5 5 0 0 1 0 5.82A3.4 3.4 0 0 0 15 11a3.5 3.5 0 0 0 0-7' - }, - { - name: 'subscriptions', - href: '/admin-panel/subscriptions', - img: 'M22 6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2zm-2 2H4V6h16zM4 11h16v7H4z' - } - ]; - - return ( -
- -
- ); -} diff --git a/src/app/ui/admin-panel/dashboard-general-info.tsx b/src/app/ui/admin-panel/dashboard-general-info.tsx deleted file mode 100644 index bb947ed..0000000 --- a/src/app/ui/admin-panel/dashboard-general-info.tsx +++ /dev/null @@ -1,140 +0,0 @@ -export default function DashboardGeneralInfo() { - return ( -
-
-
- Всего пользователей -
-
-
0
-
Зарегистрировано в системе
-
- Активных за месяц: 0
-
- -
-
- Активные подписчики -
-
-
0
-
Платные подписки
-
- Конверсия: 0% -
-
- -
-
- Защищенный контент -
-
-
0
-
Файлов защищено
-
- Всего файлов: 0
-
- -
-
- Нарушения -
-
-
0
-
Обнаружено нарушений
-
- На рассмотрении: 0
-
- -
-
- Токены сегодня -
-
-
0
-
Пополнено токенов
-
- За неделю: 0
-
- -
-
- Токены месяц -
-
-
0
-
Пополнено за месяц
-
- Потрачено: 0
-
- -
-
- Доход сегодня -
-
-
₽0
-
Заработано сегодня
-
- За неделю: ₽0
-
- -
-
- Доход месяц -
-
-
₽0
-
Заработано за месяц
-
- Всего: ₽0
-
- -
-
- Траты токенов день -
-
-
0
-
Потрачено сегодня
-
- За неделю: 0
-
- -
-
- Траты токенов год -
-
-
0
-
Потрачено за год
-
- За месяц: 0
-
- -
-
- DMCA жалобы -
-
-
0
-
Всего жалоб
-
- Успешно: 0 | Ожидает: 1 -
-
- -
-
- Использование диска -
-
-
0.0 GB
-
Занято на диске
-
- Файлов: 0
-
- -
- ) -} \ No newline at end of file diff --git a/src/app/ui/admin-panel/subscriptions-statistic.tsx b/src/app/ui/admin-panel/subscriptions-statistic.tsx deleted file mode 100644 index 24a49a6..0000000 --- a/src/app/ui/admin-panel/subscriptions-statistic.tsx +++ /dev/null @@ -1,49 +0,0 @@ -export default function SubscriptionsStatistic() { - return ( -
-
-

Статистика подписок

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
ТарифПользователейДоля
- - СТАРТ - - 00%
- - ДЕМО - - 00%
- - ПРОФИ - - 00%
-
-
- ) -} \ No newline at end of file diff --git a/src/app/ui/admin-panel/users-top.tsx b/src/app/ui/admin-panel/users-top.tsx deleted file mode 100644 index 4b6b087..0000000 --- a/src/app/ui/admin-panel/users-top.tsx +++ /dev/null @@ -1,54 +0,0 @@ -export default function UsersTop() { - return ( -
-
-

Топ пользователей

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ПользовательФайловРазмер
-
Сидоров Станислав Андреевич
-
Info@pro-ctrl.ru
-
00 MB
-
Валерка
-
va@no-copy.ru
-
00 MB
-
Игорь Викторович
-
igor@pro-ctrl.ru
-
00 MB
-
Синицын Игорь Владимирович
-
admin@no-copy.ru
-
00 MB
-
-
- ) -} \ No newline at end of file