feat: add project and type counters to Jira and TFS filters

- Implemented `jiraProjectCounts` and `jiraTypeCounts` in `JiraFilters` to display task counts per project and type, enhancing user visibility.
- Added similar functionality with `tfsProjectCounts` in `TfsFilters`, allowing users to see task distribution across TFS projects.
- Updated UI to show these counts next to project and type labels for better context.
This commit is contained in:
Julien Froidefond
2025-09-26 08:57:08 +02:00
parent 0253555fa4
commit 908f39bc5f
2 changed files with 36 additions and 3 deletions

View File

@@ -37,6 +37,28 @@ export function JiraFilters({ filters, onFiltersChange }: JiraFiltersProps) {
return Array.from(types).sort();
}, [filteredTasks]);
// Calculer les compteurs pour les projets Jira
const jiraProjectCounts = useMemo(() => {
const counts: Record<string, number> = {};
availableJiraProjects.forEach(project => {
counts[project] = filteredTasks.filter(task =>
task.source === 'jira' && task.jiraProject === project
).length;
});
return counts;
}, [filteredTasks, availableJiraProjects]);
// Calculer les compteurs pour les types Jira
const jiraTypeCounts = useMemo(() => {
const counts: Record<string, number> = {};
availableJiraTypes.forEach(type => {
counts[type] = filteredTasks.filter(task =>
task.source === 'jira' && task.jiraType === type
).length;
});
return counts;
}, [filteredTasks, availableJiraTypes]);
const handleJiraToggle = (mode: 'show' | 'hide' | 'all') => {
const updates: Partial<KanbanFilters> = {};
@@ -142,7 +164,7 @@ export function JiraFilters({ filters, onFiltersChange }: JiraFiltersProps) {
: 'border-[var(--border)] bg-[var(--card)] text-[var(--muted-foreground)] hover:border-[var(--border)]'
}`}
>
📋 {project}
📋 {project} ({jiraProjectCounts[project]})
</button>
))}
</div>
@@ -172,7 +194,7 @@ export function JiraFilters({ filters, onFiltersChange }: JiraFiltersProps) {
{type === 'Bug' && '🐛 '}
{type === 'Support' && '🛠️ '}
{type === 'Enabler' && '🔧 '}
{type}
{type} ({jiraTypeCounts[type]})
</button>
))}
</div>

View File

@@ -27,6 +27,17 @@ export function TfsFilters({ filters, onFiltersChange }: TfsFiltersProps) {
return Array.from(projects).sort();
}, [filteredTasks]);
// Calculer les compteurs pour les projets TFS
const tfsProjectCounts = useMemo(() => {
const counts: Record<string, number> = {};
availableTfsProjects.forEach(project => {
counts[project] = filteredTasks.filter(task =>
task.source === 'tfs' && task.tfsProject === project
).length;
});
return counts;
}, [filteredTasks, availableTfsProjects]);
const handleTfsToggle = (mode: 'show' | 'hide' | 'all') => {
const updates: Partial<KanbanFilters> = {};
@@ -118,7 +129,7 @@ export function TfsFilters({ filters, onFiltersChange }: TfsFiltersProps) {
: 'border-[var(--border)] bg-[var(--card)] text-[var(--muted-foreground)] hover:border-[var(--border)]'
}`}
>
📦 {project}
📦 {project} ({tfsProjectCounts[project]})
</button>
))}
</div>