import React from 'react'; import { useNavigate } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { PageHeader } from '../../components/layout'; import { Button } from '../../components/ui/Button'; import { Card, CardHeader, CardBody } from '../../components/ui/Card'; import StatsGrid from '../../components/ui/Stats/StatsGrid'; import RealTimeAlerts from '../../components/domain/dashboard/RealTimeAlerts'; import ProcurementPlansToday from '../../components/domain/dashboard/ProcurementPlansToday'; import ProductionPlansToday from '../../components/domain/dashboard/ProductionPlansToday'; import PurchaseOrdersTracking from '../../components/domain/dashboard/PurchaseOrdersTracking'; import { useTenant } from '../../stores/tenant.store'; import { AlertTriangle, Clock, Euro, Package, Plus, Building2 } from 'lucide-react'; const DashboardPage: React.FC = () => { const { t } = useTranslation(); const navigate = useNavigate(); const { availableTenants } = useTenant(); const handleAddNewBakery = () => { navigate('/app/onboarding?new=true'); }; const criticalStats = [ { title: t('dashboard:stats.sales_today', 'Sales Today'), value: '€1,247', icon: Euro, variant: 'success' as const, trend: { value: 12, direction: 'up' as const, label: t('dashboard:trends.vs_yesterday', '% vs yesterday') }, subtitle: '+€135 ' + t('dashboard:messages.more_than_yesterday', 'more than yesterday') }, { title: t('dashboard:stats.pending_orders', 'Pending Orders'), value: '23', icon: Clock, variant: 'warning' as const, trend: { value: 4, direction: 'down' as const, label: t('dashboard:trends.vs_yesterday', '% vs yesterday') }, subtitle: t('dashboard:messages.require_attention', 'Require attention') }, { title: t('dashboard:stats.products_sold', 'Products Sold'), value: '156', icon: Package, variant: 'info' as const, trend: { value: 8, direction: 'up' as const, label: t('dashboard:trends.vs_yesterday', '% vs yesterday') }, subtitle: '+12 ' + t('dashboard:messages.more_units', 'more units') }, { title: t('dashboard:stats.stock_alerts', 'Critical Stock'), value: '4', icon: AlertTriangle, variant: 'error' as const, trend: { value: 100, direction: 'up' as const, label: t('dashboard:trends.vs_yesterday', '% vs yesterday') }, subtitle: t('dashboard:messages.action_required', 'Action required') } ]; const handleOrderItem = (itemId: string) => { console.log('Ordering item:', itemId); }; const handleStartOrder = (orderId: string) => { console.log('Starting production order:', orderId); }; const handlePauseOrder = (orderId: string) => { console.log('Pausing production order:', orderId); }; const handleViewDetails = (id: string) => { console.log('Viewing details for:', id); }; const handleViewAllPlans = () => { console.log('Viewing all plans'); }; return (
{/* Critical Metrics using StatsGrid */} {/* Quick Actions - Add New Bakery */} {availableTenants && availableTenants.length > 0 && (

{t('dashboard:sections.quick_actions', 'Quick Actions')}

{t('dashboard:messages.manage_organizations', 'Manage your organizations')}

{t('dashboard:messages.active_organizations', 'Active Organizations')}
{availableTenants.length}
)} {/* Full width blocks - one after another */}
{/* 1. Real-time alerts block */} {/* 2. Purchase Orders Tracking block */} {/* 3. Procurement plans block */} {/* 4. Production plans block */}
); }; export default DashboardPage;