diff --git a/components/admin/management/tree-category-header.tsx b/components/admin/management/tree-category-header.tsx
index c97a90a..77af784 100644
--- a/components/admin/management/tree-category-header.tsx
+++ b/components/admin/management/tree-category-header.tsx
@@ -15,6 +15,11 @@ interface TreeCategoryHeaderProps {
onDelete?: () => void;
canDelete?: boolean;
isDirection?: boolean; // Pour différencier les directions des catégories de skills
+ directionStats?: {
+ direction: string;
+ totalMembers: number;
+ hasMembers: boolean;
+ };
}
export function TreeCategoryHeader({
@@ -28,6 +33,7 @@ export function TreeCategoryHeader({
onDelete,
canDelete = true,
isDirection = false,
+ directionStats,
}: TreeCategoryHeaderProps) {
return (
@@ -47,6 +53,15 @@ export function TreeCategoryHeader({
{icon}
{category}
+ {isDirection && directionStats && directionStats.hasMembers && (
+
+ {directionStats.totalMembers} membre
+ {directionStats.totalMembers > 1 ? "s" : ""}
+
+ )}
{itemCount} {itemLabel}
{itemCount > 1 ? "s" : ""}
diff --git a/components/admin/teams/teams-list.tsx b/components/admin/teams/teams-list.tsx
index 41057e7..202757d 100644
--- a/components/admin/teams/teams-list.tsx
+++ b/components/admin/teams/teams-list.tsx
@@ -18,6 +18,11 @@ interface TeamsListProps {
onDeleteDirection: (direction: string) => void;
onViewMembers: (team: TeamType) => void;
getTeamStats: (teamId: string) => TeamStats | undefined;
+ getDirectionStats: (direction: string) => {
+ direction: string;
+ totalMembers: number;
+ hasMembers: boolean;
+ };
}
export function TeamsList({
@@ -29,6 +34,7 @@ export function TeamsList({
onDeleteDirection,
onViewMembers,
getTeamStats,
+ getDirectionStats,
}: TeamsListProps) {
return (
<>
@@ -46,6 +52,7 @@ export function TeamsList({
onDelete={() => onDeleteDirection(direction)}
canDelete={true}
isDirection={true}
+ directionStats={getDirectionStats(direction)}
/>
{/* Liste des teams de la direction */}
diff --git a/components/admin/teams/teams-management-page.tsx b/components/admin/teams/teams-management-page.tsx
index fcd9681..f286a4b 100644
--- a/components/admin/teams/teams-management-page.tsx
+++ b/components/admin/teams/teams-management-page.tsx
@@ -45,6 +45,7 @@ export function TeamsManagementPage({
setTeamFormData,
resetForm,
getTeamStats,
+ getDirectionStats,
handleCreateTeam,
handleEditTeam,
handleUpdateTeam,
@@ -145,6 +146,7 @@ export function TeamsManagementPage({
onDeleteDirection={handleDeleteDirection}
onViewMembers={handleViewMembers}
getTeamStats={getTeamStats}
+ getDirectionStats={getDirectionStats}
/>
diff --git a/hooks/use-teams-management.ts b/hooks/use-teams-management.ts
index 3c131b1..d68288b 100644
--- a/hooks/use-teams-management.ts
+++ b/hooks/use-teams-management.ts
@@ -224,6 +224,23 @@ export function useTeamsManagement(
// Extraire les directions uniques pour les formulaires
const directions = Array.from(new Set(teams.map((team) => team.direction)));
+ // Calculer les stats par direction
+ const getDirectionStats = (direction: string) => {
+ const teamsInDirection = teams.filter(
+ (team) => team.direction === direction
+ );
+ const totalMembers = teamsInDirection.reduce((total, team) => {
+ const stats = getTeamStats(team.id);
+ return total + (stats?.totalMembers || 0);
+ }, 0);
+
+ return {
+ direction,
+ totalMembers,
+ hasMembers: totalMembers > 0,
+ };
+ };
+
return {
teams,
teamStats,
@@ -234,6 +251,7 @@ export function useTeamsManagement(
setTeamFormData,
resetForm,
getTeamStats,
+ getDirectionStats,
handleCreateTeam,
handleEditTeam,
handleUpdateTeam,