import React, { useState, useMemo } from 'react';
import {
LayoutDashboard,
MapPin,
CalendarCheck,
CreditCard,
PlusCircle,
Trash2,
CheckCircle,
Clock,
AlertCircle,
TrendingUp,
Users,
Search,
LogOut,
ChevronRight
} from 'lucide-react';
const App = () => {
const [activeTab, setActiveTab] = useState('dashboard');
const [searchQuery, setSearchQuery] = useState('');
// State for bookings
const [bookings, setBookings] = useState([
{ id: 'BK-1001', customer: 'أحمد محمد', activity: 'رحلة سفاري دبي', date: '2024-05-15', status: 'confirmed', price: 450 },
{ id: 'BK-1002', customer: 'سارة خالد', activity: 'جولة في جبال الأبها', date: '2024-05-18', status: 'pending', price: 300 },
{ id: 'BK-1003', customer: 'ياسر القحطاني', activity: 'غوص في البحر الأحمر', date: '2024-05-10', status: 'completed', price: 600 },
{ id: 'BK-1004', customer: 'ليلى عبدالله', activity: 'زيارة العلا التاريخية', date: '2024-05-20', status: 'confirmed', price: 1200 },
]);
// State for activities
const [activities, setActivities] = useState([
{ id: 1, name: 'رحلة سفاري دبي', location: 'دبي، الإمارات', price: 450, category: 'مغامرات' },
{ id: 2, name: 'غوص في البحر الأحمر', location: 'جدة، السعودية', price: 600, category: 'رياضات مائية' },
]);
const [newActivity, setNewActivity] = useState({ name: '', location: '', price: '', category: '' });
// Helpers
const getStatusBadge = (status) => {
switch(status) {
case 'confirmed':
return مؤكد;
case 'pending':
return جاري;
case 'completed':
return مكتمل;
default: return null;
}
};
const handleAddActivity = (e) => {
e.preventDefault();
if (!newActivity.name || !newActivity.price) return;
setActivities([...activities, { ...newActivity, id: Date.now() }]);
setNewActivity({ name: '', location: '', price: '', category: '' });
};
const deleteActivity = (id) => {
setActivities(activities.filter(a => a.id !== id));
};
const filteredBookings = bookings.filter(b =>
b.customer.includes(searchQuery) || b.id.includes(searchQuery) || b.activity.includes(searchQuery)
);
const totalEarnings = bookings.reduce((sum, b) => sum + b.price, 0);
return (
{/* Sidebar */}
{/* Main Content */}
{activeTab === 'dashboard' && (
{/* Stats Cards */}
} trend="+12%" />
b.status === 'confirmed').length} icon={} trend="+5%" />
} />
} trend="+8%" />
{/* Recent Bookings Snapshot */}
أحدث الحجوزات
{bookings.slice(0, 4).map(booking => (
{booking.customer.charAt(0)}
{booking.customer}
{booking.activity}
{getStatusBadge(booking.status)}
))}
{/* Quick Add Form Mini */}
توسيع الوجهة السياحية؟
أضف أنشطة جديدة لجذب المزيد من السياح وزيادة مبيعات الشركة.
)}
{activeTab === 'bookings' && (
إدارة كافة الحجوزات
| رقم الحجز |
العميل |
النشاط |
التاريخ |
المبلغ |
الحالة |
إجراءات |
{filteredBookings.map((booking) => (
| {booking.id} |
{booking.customer} |
{booking.activity} |
{booking.date} |
${booking.price} |
{getStatusBadge(booking.status)} |
|
))}
)}
{activeTab === 'activities' && (
قائمة الأنشطة الحالية
{activities.map(activity => (
{activity.name}
{activity.location} • {activity.category}
${activity.price}
))}
{activities.length === 0 && (
لا توجد أنشطة حالياً، ابدأ بإضافة نشاطك الأول
)}
)}
);
};
const StatCard = ({ title, value, icon, trend }) => (
{title}
{value}
{trend && (
{trend} مقارنة بالشهر السابق
)}
{icon}
);
export default App;