Files
MAD-Platform/components/CalendrierPageContent.tsx

62 lines
2.0 KiB
TypeScript
Raw Normal View History

2026-01-21 17:34:48 +01:00
'use client';
import { useState } from 'react';
import CalendrierTrajets from './CalendrierTrajets';
import ListeTrajets from './ListeTrajets';
2026-02-16 14:43:02 +01:00
import TrajetForm from './TrajetForm';
2026-01-21 17:34:48 +01:00
export default function CalendrierPageContent() {
const [refreshTrigger, setRefreshTrigger] = useState(0);
2026-02-16 14:43:02 +01:00
const [showTrajetForm, setShowTrajetForm] = useState(false);
2026-01-21 17:34:48 +01:00
const handleTrajetCreated = () => {
setRefreshTrigger((prev) => prev + 1);
};
return (
2026-02-15 15:37:31 +01:00
<div className="flex flex-col gap-6 sm:gap-8">
2026-02-16 14:43:02 +01:00
{/* En-tête avec titre et bouton */}
<div className="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-2">
<div>
<h1 className="text-2xl sm:text-3xl font-semibold text-cblack">
Calendrier
</h1>
<p className="text-xs sm:text-sm text-cgray mt-1">
Gestion des trajets et planning des chauffeurs
</p>
</div>
<button
onClick={() => setShowTrajetForm(true)}
className="flex items-center justify-center gap-2 px-4 py-2.5 bg-lgreen text-white text-sm font-medium rounded-lg hover:bg-dgreen transition-colors self-start sm:self-center shrink-0"
>
<svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M12 4v16m8-8H4" />
</svg>
Nouveau trajet
</button>
</div>
2026-02-15 15:37:31 +01:00
{/* Calendrier en haut */}
<div>
2026-01-21 17:34:48 +01:00
<CalendrierTrajets refreshTrigger={refreshTrigger} />
</div>
2026-02-15 15:37:31 +01:00
{/* Liste des trajets en bas, triable par période */}
<div>
2026-02-16 14:43:02 +01:00
<ListeTrajets onTrajetCreated={handleTrajetCreated} hideNewTrajetButton />
2026-01-21 17:34:48 +01:00
</div>
2026-02-16 14:43:02 +01:00
{/* Modal formulaire trajet */}
{showTrajetForm && (
<TrajetForm
onClose={() => setShowTrajetForm(false)}
onSuccess={() => {
handleTrajetCreated();
setShowTrajetForm(false);
}}
/>
)}
2026-01-21 17:34:48 +01:00
</div>
);
}