import React, { useState } from 'react'; import ReactDOM from 'react-dom/client'; // --- DUMMY DATA --- const summaryData = { totalShipments: 1254, monthlyRevenue: 150000, monthlyExpenses: 35000, }; const recentShipments = [ { id: 'SH-8435', company: 'شركة الأجهزة الحديثة', client: 'شركة', status: 'قيد التوصيل' }, { id: 'SH-8434', company: 'متجر الإلكترونيات', client: 'متجر', status: 'تم التسليم' }, { id: 'SH-8433', company: 'مؤسسة المواد الغذائية', client: 'مؤسسة', status: 'تم التسليم' }, { id: 'SH-8432', company: 'مصنع المنسوجات', client: 'مصنع', status: 'قيد التوصيل' }, { id: 'SH-8431', company: 'مكتبة جرير', client: 'مكتبة', status: 'معلقة' }, ]; const allShipments = [ { id: 'SH-12345', client: 'شركة النور للتجارة', driver: 'أحمد محمود', date: '2024-07-21', status: 'تم التوصيل' }, { id: 'SH-12346', client: 'مؤسسة الأمل الصناعية', driver: 'علي حسن', date: '2024-07-22', status: 'قيد التنفيذ' }, { id: 'SH-12347', client: 'متجر الهدايا العصري', driver: 'خالد سعيد', date: '2024-07-22', status: 'قيد الانتظar' }, { id: 'SH-12348', client: 'مكتبة الحكمة', driver: 'يوسف إبراهيم', date: '2024-07-23', status: 'تم الإلغاء' }, { id: 'SH-12349', client: 'شركة الأجهزة الحديثة', driver: 'محمد عبدالله', date: '2024-07-24', status: 'قيد التنفيذ' }, { id: 'SH-12350', client: 'مصنع الأثاث الراقي', driver: 'أحمد محمود', date: '2024-07-25', status: 'تم التوصيل' }, { id: 'SH-12351', client: 'مؤسسة النسيج الذهبي', driver: 'علي حسن', date: '2024-07-26', status: 'قيد الانتظار' }, { id: 'SH-12352', client: 'معرض السيارات الفاخرة', driver: 'خالد سعيد', date: '2024-07-27', status: 'قيد التنفيذ' }, ]; // --- HELPER FUNCTIONS --- const formatCurrency = (amount) => { return new Intl.NumberFormat('ar-SA', { style: 'currency', currency: 'SAR', minimumFractionDigits: 0, maximumFractionDigits:0 }).format(amount).replace('ر.س.', 'ريال'); }; const getStatusBadge = (status) => { switch (status) { case 'تم التسليم': return 'bg-green-100 text-green-800'; case 'قيد التوصيل': case 'قيد التنفيذ': return 'bg-orange-100 text-orange-800'; case 'قيد الانتظار': case 'معلقة': return 'bg-yellow-100 text-yellow-800'; case 'تم الإلغاء': return 'bg-red-100 text-red-800'; default: return 'bg-gray-100 text-gray-800'; } }; // --- ICONS --- const HomeIcon = ({className}) => ; const TruckIcon = ({className}) => ; const UserGroupIcon = ({className}) => ; const CurrencyDollarIcon = ({className}) => ; const TrashIcon = () => ; const PencilIcon = () => ; // --- COMPONENTS --- const Sidebar = ({ activeView, setActiveView }) => { const navItems = [ { id: 'dashboard', name: 'الرئيسية', icon: HomeIcon }, { id: 'shipments', name: 'الشحنات', icon: TruckIcon }, { id: 'accounts', name: 'الحسابات', icon: CurrencyDollarIcon }, { id: 'clients', name: 'العملاء', icon: UserGroupIcon }, ]; return ( ); }; const Dashboard = () => { const StatCard = ({ title, value, color, isCurrency = false }) => (

{title}

{isCurrency ? formatCurrency(value) : value.toLocaleString('ar-EG')}

); return (

لوحة التحكم الرئيسية

مرحباً بك، إليك ملخص نشاطك اليوم.

أحدث الشحنات

{recentShipments.map((shipment, index) => ( ))}
رقم الشحنة العميل الشركة الحالة
{shipment.id} {shipment.company} {shipment.client} {shipment.status}
); }; const ShipmentsTable = ({ onAddShipment }) => { return (

إدارة الشحنات

عرض وتعديل جميع الشحنات في مكان واحد.

{allShipments.map((shipment, index) => ( ))}
رقم الشحنة العميل السائق التاريخ الحالة إجراءات
{shipment.id} {shipment.client} {shipment.driver} {shipment.date} {shipment.status}
); }; const AddShipmentModal = ({ onClose }) => { const InputField = ({ label, placeholder, type = 'text' }) => (
); return (

إضافة شحنة جديدة

بيانات المرسل

بيانات المستلم

تفاصيل الشحنة

); }; function App() { const [activeView, setActiveView] = useState('dashboard'); const [isModalOpen, setIsModalOpen] = useState(false); const renderView = () => { switch (activeView) { case 'shipments': return setIsModalOpen(true)} />; case 'accounts': return

إدارة الحسابات

; case 'clients': return

العملاء

; case 'dashboard': default: return ; } }; return (
{renderView()}
{isModalOpen && setIsModalOpen(false)} />}
); } const root = ReactDOM.createRoot(document.getElementById('root')); root.render();