Files
Hermes-ui/packages/client/src/utils/hermes/kanban-assignees.ts
T

22 lines
729 B
TypeScript
Raw Normal View History

2026-05-22 02:20:45 +02:00
export const DEFAULT_KANBAN_ASSIGNEE = 'default'
export interface KanbanAssigneeSummary {
name: string
counts?: Record<string, number> | null
}
export function assigneeTaskTotal(assignee: KanbanAssigneeSummary): number {
return Object.values(assignee.counts || {}).reduce((sum, count) => sum + count, 0)
}
export function withDefaultAssignee<T extends KanbanAssigneeSummary>(
assignees: T[],
byAssignee: Record<string, number> = {},
): KanbanAssigneeSummary[] {
const defaultCount = byAssignee[DEFAULT_KANBAN_ASSIGNEE] || 0
2026-05-24 08:59:21 +08:00
return assignees.map(assignee => {
2026-05-22 02:20:45 +02:00
if (assignee.name !== DEFAULT_KANBAN_ASSIGNEE || assignee.counts) return assignee
return { ...assignee, counts: { total: defaultCount } }
})
}