AdminJO Front - Documentation API - v0.1.0
    Preparing search index...

    Function useDisciplinesManagement

    • Hook useDisciplinesManagement - Gestion complète des disciplines sportives

      Ce hook fournit une interface unifiée pour la gestion des disciplines sportives des JO 2024. Il combine les opérations CRUD, la recherche textuelle et le tri automatique pour une administration efficace des disciplines olympiques.

      Returns {
          disciplines: Discipline[];
          searchTerm: string;
          loading: boolean;
          error: string | null;
          createLoading: boolean;
          createError: string | null;
          loadDisciplines: (searchQuery?: string) => Promise<void>;
          createDiscipline: (
              disciplineData: CreateDisciplineRequest,
          ) => Promise<Discipline>;
          updateDiscipline: (
              id: number,
              disciplineData: CreateDisciplineRequest,
          ) => Promise<Discipline>;
          deleteDiscipline: (id: number) => Promise<void>;
          handleSearch: (query: string) => Promise<void>;
          setCreateError: Dispatch<SetStateAction<string | null>>;
      }

      Interface complète de gestion des disciplines

      useDisciplinesManagement

      • Chargement automatique : Récupération de toutes les disciplines au montage
      • Tri alphabétique : Classement automatique par nom de discipline
      • Gestion d'état : États de chargement et d'erreur pour chaque opération
      • Synchronisation : Mise à jour temps réel avec les données backend
      • Recherche textuelle : Filtrage par nom de discipline
      • Recherche API : Délégation de la recherche au backend pour optimisation
      • Mise à jour dynamique : Actualisation automatique lors des changements
      • Création : Ajout de nouvelles disciplines avec validation
      • Lecture : Récupération et affichage des disciplines
      • Mise à jour : Modification des disciplines existantes
      • Suppression : Suppression sécurisée des disciplines
      • Tri automatique : Maintien de l'ordre alphabétique après chaque opération
      • disciplines : Liste des disciplines triées alphabétiquement
      • searchTerm : Terme de recherche textuelle actuel
      • loading : Indicateur de chargement pour les opérations de lecture
      • error : Messages d'erreur pour les opérations principales
      • createLoading : État de chargement spécifique aux opérations de création/modification
      • createError : Messages d'erreur spécifiques aux opérations de création/modification
      1. Initialisation : Chargement de toutes les disciplines avec tri alphabétique
      2. Recherche : Filtrage côté serveur avec mise à jour de la liste
      3. CRUD : Opérations avec mise à jour immédiate de l'état local
      4. Tri : Maintien automatique de l'ordre alphabétique
      5. Gestion d'erreurs : Capture et affichage des erreurs pour chaque opération
      • disciplineApi : Service API principal pour les disciplines
      • Recherche optimisée : Délégation au backend avec paramètres de filtre
      • Validation : Contrôles de cohérence avec les données serveur
      function DisciplinesManagementPage() {
      const {
      disciplines,
      loading,
      error,
      searchTerm,
      setSearchTerm,
      createDiscipline,
      updateDiscipline,
      deleteDiscipline,
      createLoading,
      createError
      } = useDisciplinesManagement();

      if (loading) return <Spinner />;
      if (error) return <ErrorMessage message={error} />;

      return (
      <div>
      <SearchBar value={searchTerm} onChange={setSearchTerm} />
      <CreateDisciplineForm
      onSubmit={createDiscipline}
      loading={createLoading}
      error={createError}
      />
      <DisciplinesList
      disciplines={disciplines}
      onUpdate={updateDiscipline}
      onDelete={deleteDiscipline}
      />
      </div>
      );
      }