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-16 19:03:56 +01:00
|
|
|
<div className="flex flex-col gap-6 sm:gap-8 min-w-0">
|
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 */}
|
2026-02-16 19:03:56 +01:00
|
|
|
<div className="min-w-0 overflow-hidden">
|
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 */}
|
2026-02-16 19:03:56 +01:00
|
|
|
<div className="min-w-0 overflow-hidden">
|
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>
|
|
|
|
|
);
|
|
|
|
|
}
|