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

    Function useEmployesManagement

    • Hook useEmployesManagement - Gestion complète des employés

      Ce hook fournit une interface unifiée pour la gestion des employés de l'application AdminJO. Il combine les opérations de création, lecture, filtrage, recherche et modification des états d'activation des comptes employés.

      Returns {
          employes: Employe[];
          loading: boolean;
          error: string | null;
          searchTerm: string;
          statusFilter: "all" | "active" | "inactive";
          isCreating: boolean;
          loadEmployes: () => Promise<void>;
          createEmploye: (employeData: CreateEmployeRequest) => Promise<boolean>;
          handleSearch: (term: string) => void;
          handleStatusFilter: (status: "all" | "active" | "inactive") => void;
          toggleEmployeActive: (employeId: number) => Promise<void>;
      }

      Interface complète de gestion des employés

      • employes: Employe[]
      • loading: boolean
      • error: string | null
      • searchTerm: string
      • statusFilter: "all" | "active" | "inactive"
      • isCreating: boolean
      • loadEmployes: () => Promise<void>

        Charge la liste des employés

      • createEmploye: (employeData: CreateEmployeRequest) => Promise<boolean>

        Crée un nouvel employé

      • handleSearch: (term: string) => void

        Gère la recherche d'employés

      • handleStatusFilter: (status: "all" | "active" | "inactive") => void

        Gère le filtre par statut

      • toggleEmployeActive: (employeId: number) => Promise<void>

        Change l'état actif/inactif d'un employé

      useEmployesManagement

      • Chargement automatique : Récupération de tous les employés au montage
      • Gestion d'état : États de chargement et d'erreur pour les opérations
      • Mise à jour synchrone : Rechargement complet après création pour cohérence
      • Synchronisation : Maintien de la cohérence avec les données backend
      • Recherche textuelle : Filtrage par nom, prénom, email ou téléphone
      • Filtrage par statut : Employés actifs, inactifs ou tous
      • Filtres combinés : Application simultanée de plusieurs critères
      • Mise à jour temps réel : Filtrage immédiat lors des changements
      • Création d'employés : Ajout de nouveaux employés avec validation
      • Lecture des données : Récupération et affichage des employés
      • Gestion des statuts : Activation/désactivation des comptes
      • États de création : Indicateurs spécifiques pour les opérations de création
      • employes : Liste complète des employés avec informations utilisateur
      • loading : État de chargement pour les opérations principales
      • error : Messages d'erreur pour les opérations échouées
      • isCreating : État de chargement spécifique à la création
      • searchTerm : Terme de recherche textuelle actuel
      • statusFilter : Filtre par statut ('all', 'active', 'inactive')
      • loadEmployes() : Récupération de tous les employés depuis l'API
      • Gestion d'erreurs : Capture et affichage des erreurs de chargement
      • États de chargement : Indicateurs visuels pendant les opérations
      • createEmploye() : Création de nouveaux employés avec rechargement
      • Validation : Contrôle des données avant envoi à l'API
      • Feedback : Retour booléen de succès/échec de l'opération
      • toggleEmployeActive() : Basculer l'état actif/inactif d'un employé
      • Mise à jour optimiste : Changement immédiat avant confirmation serveur
      • Rollback : Restauration en cas d'échec de l'opération
      • employeService : Service API pour les opérations sur les employés
      • Employe type : Interface TypeScript pour la structure des données
      • CreateEmployeRequest : Interface pour les données de création
      function EmployesManagementPage() {
      const {
      employes,
      loading,
      error,
      searchTerm,
      setSearchTerm,
      statusFilter,
      setStatusFilter,
      createEmploye,
      toggleEmployeActive,
      isCreating
      } = useEmployesManagement();

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

      return (
      <div>
      <SearchBar value={searchTerm} onChange={setSearchTerm} />
      <StatusFilter value={statusFilter} onChange={setStatusFilter} />
      <CreateEmployeForm
      onSubmit={createEmploye}
      loading={isCreating}
      />
      <EmployesList
      employes={employes}
      onToggleActive={toggleEmployeActive}
      />
      </div>
      );
      }