File size: 666 Bytes
b59aa07
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import {
  SuggestedTask,
  SuggestedTaskGroup,
} from "#/components/features/home/tasks/task.types";

/**
 * Groups suggested tasks by their repository.
 * @param tasks Array of suggested tasks
 * @returns Array of suggested task groups
 */
export function groupSuggestedTasks(
  tasks: SuggestedTask[],
): SuggestedTaskGroup[] {
  const groupsMap: Record<string, SuggestedTaskGroup> = {};

  for (const task of tasks) {
    const groupKey = `${task.repo}`;

    if (!groupsMap[groupKey]) {
      groupsMap[groupKey] = {
        title: groupKey,
        tasks: [],
      };
    }

    groupsMap[groupKey].tasks.push(task);
  }

  return Object.values(groupsMap);
}