import AppLayout from '@/layouts/app-layout'; import { type BreadcrumbItem, type PageProps } from '@/types'; import { Head, router, usePage } from '@inertiajs/react'; import { useEffect, useState } from 'react'; import DashboardController from '@/actions/App/Http/Controllers/DashboardController'; import { FlashMessage } from '@/components/flash-message'; import { WelcomeCard } from '@/components/features/dashboard/WelcomeCard'; import { NoMemberCard } from '@/components/features/dashboard/NoMemberCard'; import { ServicesSection } from '@/components/features/dashboard/ServicesSection'; const breadcrumbs: BreadcrumbItem[] = [ { title: 'Tableau de bord', href: DashboardController.index().url, }, ]; export default function Dashboard() { const { flash, member } = usePage().props; const [showFlash, setShowFlash] = useState(!!flash); const [submitting, setSubmitting] = useState(false); useEffect(() => { if (flash) { setShowFlash(true); const timer = setTimeout(() => setShowFlash(false), 5000); return () => clearTimeout(timer); } }, [flash]); function handleActivationRequest(identifier: string) { setSubmitting(true); router.post( DashboardController.requestServiceActivation().url, { service_identifier: identifier }, { preserveScroll: true, onFinish: () => setSubmitting(false), }, ); } const membership = member?.membership ?? null; const services = membership?.services ?? []; return (
{showFlash && flash && } {member ? ( <> {services.length > 0 && ( )} {services.length === 0 && membership && (
Aucun service associé à votre adhésion pour le moment.
)} {!membership && (
Votre demande d'adhésion est en cours de traitement.
)} ) : ( )}
); }