Interface complète de gestion des offres
useOffreManagement
function OffresManagementPage() {
const {
offres,
loading,
error,
formLoading,
formNotification,
createOffre,
updateOffre,
deleteOffre,
setFormNotification
} = useOffreManagement();
if (loading) return <Spinner />;
if (error) return <ErrorMessage message={error} />;
const handleCreateOffre = async (offreData) => {
try {
await createOffre(offreData);
// Notification automatique de succès
} catch (error) {
// Notification automatique d'erreur
}
};
return (
<div>
{formNotification && (
<NotificationComponent
message={formNotification.message}
type={formNotification.type}
onClose={() => setFormNotification(null)}
/>
)}
<OffreForm
onSubmit={handleCreateOffre}
loading={formLoading}
/>
<OffresList
offres={offres}
onUpdate={updateOffre}
onDelete={deleteOffre}
loading={formLoading}
/>
</div>
);
}
Hook useOffreManagement - Gestion complète des offres
Ce hook fournit une interface unifiée pour la gestion des offres de l'application AdminJO. Il combine les opérations CRUD, la gestion des états de chargement et un système de notifications pour offrir un feedback utilisateur immédiat sur toutes les opérations effectuées.