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:
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user