'use client' import { useState, useEffect } from 'react' import ProtectedRoute from '@/components/ProtectedRoute' import { useAuth } from '@/contexts/AuthContext' import { useLanguage } from '@/contexts/LanguageContext' import LanguageSwitcher from '@/components/LanguageSwitcher' import Link from 'next/link' import { Users, User, TrendingUp, Package, CheckSquare, UserCheck, Megaphone, LogOut, Building2, Settings, Bell, Shield } from 'lucide-react' import { dashboardAPI } from '@/lib/api' function DashboardContent() { const { user, logout, hasPermission } = useAuth() const { t, language, dir } = useLanguage() const [stats, setStats] = useState({ contacts: 0, activeTasks: 0, notifications: 0 }) useEffect(() => { dashboardAPI.getStats() .then((res) => { if (res.data?.data) setStats(res.data.data) }) .catch(() => {}) }, []) const allModules = [ { id: 'contacts', name: 'إدارة جهات الاتصال', nameEn: 'Contact Management', icon: Users, color: 'bg-blue-500', href: '/contacts', description: 'إدارة العملاء والموردين وجهات الاتصال', permission: 'contacts' }, { id: 'crm', name: 'إدارة علاقات العملاء', nameEn: 'CRM', icon: TrendingUp, color: 'bg-green-500', href: '/crm', description: 'الفرص التجارية والعروض والصفقات', permission: 'crm' }, { id: 'inventory', name: 'المخزون والأصول', nameEn: 'Inventory & Assets', icon: Package, color: 'bg-purple-500', href: '/inventory', description: 'المنتجات والمخازن والأصول الثابتة', permission: 'inventory' }, { id: 'projects', name: 'المهام والمشاريع', nameEn: 'Tasks & Projects', icon: CheckSquare, color: 'bg-orange-500', href: '/projects', description: 'إدارة المشاريع والمهام والموارد', permission: 'projects' }, { id: 'hr', name: 'الموارد البشرية', nameEn: 'Human Resources', icon: UserCheck, color: 'bg-teal-500', href: '/hr', description: 'الموظفين والإجازات والرواتب', permission: 'hr' }, { id: 'portal', name: 'البوابة الذاتية', nameEn: 'My Portal', icon: User, color: 'bg-cyan-500', href: '/portal', description: 'قروضي، إجازاتي، طلبات الشراء والرواتب', permission: 'hr' }, { id: 'marketing', name: 'التسويق', nameEn: 'Marketing', icon: Megaphone, color: 'bg-pink-500', href: '/marketing', description: 'الحملات التسويقية والعملاء المحتملين', permission: 'marketing' }, { id: 'admin', name: 'لوحة الإدارة', nameEn: 'Admin Panel', icon: Shield, color: 'bg-red-500', href: '/admin', description: 'إدارة المستخدمين والأدوار وسجل العمليات', permission: 'admin' } ] // Filter modules based on user permissions const availableModules = allModules.filter(module => hasPermission(module.permission, 'view') ) return (
{/* Header */}

Z.CRM

نظام إدارة علاقات العملاء

{/* Language Switcher */} {/* User Info */}

{user?.username}

{user?.role?.name || 'مستخدم'}

{/* Admin Panel Link - Only for admins */} {hasPermission('admin', 'view') && ( لوحة الإدارة )} {/* Notifications */} {/* Settings */} {/* Logout */}
{/* Main Content */}
{/* Welcome Section */}

مرحباً، {user?.username}! 👋

{user?.role?.name} - {availableModules.length} وحدة متاحة

{/* Stats Cards */}

الوحدات المتاحة

{availableModules.length}

المهام النشطة

{stats.activeTasks}

الإشعارات

{stats.notifications}

جهات الاتصال

{stats.contacts}

{/* Available Modules */}

الوحدات المتاحة

{availableModules.length > 0 ? (
{availableModules.map((module) => { const Icon = module.icon return (

{module.name}

{module.nameEn}

{module.description}

) })}
) : (

لا توجد وحدات متاحة لحسابك. الرجاء التواصل مع المسؤول لمنح الصلاحيات المناسبة.

)}
{/* Recent Activity */}

النشاط الأخير

لا يوجد نشاط حديث

) } export default function DashboardPage() { return ( ) }