import React, { useCallback, useState } from 'react'; import { Card, CardHeader, CardTitle, CardDescription } from "@/components/ui/card"; import { type Event } from '@/features/event/api/eventService'; import { type DashboardModule, type DashboardModuleContext } from '@/components/dashboard/dashboardModuleTypes'; import { eventDashboardModule } from '@/features/event/dashboardModule'; import { quickPostDashboardModule } from '@/features/photopost/dashboardModule'; interface DashboardCardProps { title: string; description: string; onClick: () => void; illustration?: string; } const DashboardCard: React.FC = ({ title, description, onClick, illustration }) => (
{illustration && (
)}
{title}
{description}
{illustration && (
)} ); interface DashboardProps { onActionClick: (action: string) => void; hasActiveEvent: boolean; currentEvent: Event | null; } const Dashboard: React.FC = ({ onActionClick, hasActiveEvent, currentEvent }) => { const [activeModuleId, setActiveModuleId] = useState(null); const ctx: DashboardModuleContext = { currentEvent, }; const allModules: DashboardModule[] = [ eventDashboardModule, quickPostDashboardModule, ]; const visibleModules = allModules.filter((m) => m.isVisible ? m.isVisible(ctx) : true); const activeModule = activeModuleId ? visibleModules.find((m) => m.id === activeModuleId) || null : null; const handleBackToOverview = useCallback(() => { setActiveModuleId(null); }, []); const renderContent = () => { if (activeModule) { return activeModule.renderWizard(ctx, handleBackToOverview); } return (

Willkommen zurück

Was möchtest du heute tun?

{visibleModules.map((module) => ( setActiveModuleId(module.id)} illustration={module.getIllustration?.(ctx)} /> ))}
); }; return
{renderContent()}
; }; const DashboardComponent: React.FC = Dashboard; export default DashboardComponent; // removed modal-based EventTimelineOverlay in favor of inline EventWizard