diff --git a/app/admin/dashboard/page.tsx b/app/admin/dashboard/page.tsx index 6153943..4f1d26e 100644 --- a/app/admin/dashboard/page.tsx +++ b/app/admin/dashboard/page.tsx @@ -2,94 +2,102 @@ import { useAuth } from '@/contexts/AuthContext'; import Link from 'next/link'; -import { UsersIcon, CubeIcon, TagIcon , BellIcon, GiftIcon } from '@heroicons/react/24/outline'; +import { UsersIcon, CubeIcon, TagIcon , BellIcon, GiftIcon, PowerIcon } from '@heroicons/react/24/outline'; import { MegaphoneIcon } from 'lucide-react'; +import ThemeToggle from '@/components/ThemeToggle'; // import { BellIcon } from 'lucide-react'; export default function Dashboard() { const { user, logout } = useAuth(); + const cards = [ + { + href: '/admin/users', + title: 'مدیریت کاربران', + desc: 'مشاهده و مدیریت کاربران، اشتراک‌ها و تراکنش‌ها', + Icon: UsersIcon, + iconWrap: 'bg-indigo-100 text-indigo-600 dark:bg-indigo-500/15 dark:text-indigo-400', + }, + { + href: '/admin/packages', + title: 'مدیریت پکیج‌ها', + desc: 'ایجاد و مدیریت پکیج‌های نرم‌افزار', + Icon: CubeIcon, + iconWrap: 'bg-green-100 text-green-600 dark:bg-green-500/15 dark:text-green-400', + }, + { + href: '/admin/products', + title: 'مدیریت محصولات', + desc: 'ایجاد و مدیریت محصولات و اشتراک‌ها', + Icon: TagIcon, + iconWrap: 'bg-purple-100 text-purple-600 dark:bg-purple-500/15 dark:text-purple-400', + }, + { + href: '/admin/reminders', + title: 'مدیریت یادآوری‌ها', + desc: 'ایجاد و مدیریت یادآوری‌ها و پیام‌های انگیزشی', + Icon: BellIcon, + iconWrap: 'bg-yellow-100 text-yellow-600 dark:bg-yellow-500/15 dark:text-yellow-400', + }, + { + href: '/admin/promotions', + title: 'مدیریت تبلیغات', + desc: 'ایجاد و مدیریت تبلیغات، بنرها و اسلایدرها', + Icon: MegaphoneIcon, + iconWrap: 'bg-pink-100 text-pink-600 dark:bg-pink-500/15 dark:text-pink-400', + }, + { + href: '/admin/referral-rewards', + title: 'پاداش‌های معرفی', + desc: 'اعطای اشتراک رایگان به کاربران واجد شرایط دعوت', + Icon: GiftIcon, + iconWrap: 'bg-emerald-100 text-emerald-600 dark:bg-emerald-500/15 dark:text-emerald-400', + }, + ]; + return ( -
+
-
+
-

+

داشبورد

- +
+ + +
-
-

خوش آمدید، {user?.email}

+
+

خوش آمدید، {user?.email}

+

یکی از بخش‌های زیر را برای مدیریت انتخاب کنید.

{/* Dashboard Cards */} -
- -
- -

مدیریت کاربران

-

- مشاهده و مدیریت کاربران، اشتراک‌ها و تراکنش‌ها -

-
- - - -
- -

مدیریت پکیج‌ها

-

- ایجاد و مدیریت پکیج‌های نرم‌افزار -

-
- - - -
- -

مدیریت محصولات

-

- ایجاد و مدیریت محصولات و اشتراک‌ها -

-
- - -
- -

مدیریت یادآوری‌ها

-

- ایجاد و مدیریت یادآوری‌ها و پیام‌های انگیزشی -

-
- - -
- -

مدیریت تبلیغات

-

- ایجاد و مدیریت تبلیغات، بنرها و اسلایدرها -

-
- - -
- -

پاداش‌های معرفی

-

- اعطای اشتراک رایگان به کاربران واجد شرایط دعوت -

-
- +
+ {cards.map(({ href, title, desc, Icon, iconWrap }) => ( + +
+
+ +
+

{title}

+

+ {desc} +

+
+ + ))}
); -} \ No newline at end of file +} diff --git a/app/admin/layout.tsx b/app/admin/layout.tsx index 3d40f47..e3b96e1 100644 --- a/app/admin/layout.tsx +++ b/app/admin/layout.tsx @@ -1,6 +1,7 @@ 'use client'; import { AuthProvider } from '@/contexts/AuthContext'; +import ThemeToggle from '@/components/ThemeToggle'; export default function AdminLayout({ children, @@ -9,8 +10,9 @@ export default function AdminLayout({ }) { return ( -
+
{children} +
); diff --git a/app/admin/login/page.tsx b/app/admin/login/page.tsx index 55d370a..e047b4a 100644 --- a/app/admin/login/page.tsx +++ b/app/admin/login/page.tsx @@ -4,6 +4,7 @@ import { useState } from 'react'; import { useAuth } from '@/contexts/AuthContext'; import { useRouter } from 'next/navigation'; import { useEffect } from 'react'; +import { LockClosedIcon } from '@heroicons/react/24/outline'; export default function LoginPage() { const [auth, setAuth] = useState(''); @@ -36,72 +37,78 @@ export default function LoginPage() { }; return ( -
-
-
-

- پنل ادمین اپروایجنسی -

-
- -
+
+
+
-
- - setAuth(e.target.value)} - disabled={isLoading} - /> -
-
- - setPassword(e.target.value)} - disabled={isLoading} - /> +
+
+

+ پنل ادمین اپروایجنسی +

+

+ برای ادامه وارد حساب کاربری خود شوید +

- {(error || localError) && ( -
-
-
-

- {localError || error} -

-
+ +
+
+ + setAuth(e.target.value)} + disabled={isLoading} + dir="ltr" + /> +
+
+ + setPassword(e.target.value)} + disabled={isLoading} + dir="ltr" + />
- )} -
- -
- + {(error || localError) && ( +
+

+ {localError || error} +

+
+ )} + +
+ +
+ +
); diff --git a/app/admin/packages/page.tsx b/app/admin/packages/page.tsx index fc941af..118c5ea 100644 --- a/app/admin/packages/page.tsx +++ b/app/admin/packages/page.tsx @@ -104,13 +104,13 @@ export default function PackagesPage() {
-

+

مدیریت پکیج‌ها

{!isFormVisible && (