@zeniai/client-epic-state 4.20.0-beta14RR → 4.20.0-beta16RR

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,14 +38,8 @@ const sortTasksList = (tagState, tasksList, sortKey, sortOrder) => {
38
38
  return task.status.name;
39
39
  case 'priority':
40
40
  return ALL_PRIORITY_CODE.indexOf(task.priority.code);
41
- case 'assignee': {
42
- const firstAssignee = task.assigneeUsers[0]?.user;
43
- if (firstAssignee == null) {
44
- return '';
45
- }
46
- return (`${firstAssignee.firstName} ${firstAssignee.lastName}`.trim() ||
47
- firstAssignee.email).toLowerCase();
48
- }
41
+ case 'assignee':
42
+ return task.firstAssigneeSortName;
49
43
  case 'timeSpent':
50
44
  return task.timeSpent;
51
45
  case 'visibility':
@@ -57,7 +51,7 @@ const sortTasksList = (tagState, tasksList, sortKey, sortOrder) => {
57
51
  }, sortOrder);
58
52
  return tasksInOrder;
59
53
  };
60
- const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRoleState, addressState, taskIds, tagState, }) => {
54
+ const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRoleState, addressState, taskIds, tagState, userGroupsState, }) => {
61
55
  const { sortKey, searchText } = taskListState.uiState;
62
56
  const sortOrder = getSortOrder(taskListState.uiState.sortOrder);
63
57
  const tasks = taskIds
@@ -67,7 +61,16 @@ const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRole
67
61
  const assigneeUsers = task.assignees
68
62
  .map((userId) => getUserAndUserRole(userState, userRoleState, addressState, userId))
69
63
  .filter((value) => value != null);
70
- return { ...task, assigneeUsers };
64
+ // Compute sort name matching display order: groups first, then users
65
+ const firstGroupName = task.groupAssignees.length > 0
66
+ ? task.groupAssignees
67
+ .map((gId) => userGroupsState.userGroupByUserGroupId[gId]?.name ?? '')
68
+ .find((name) => name !== '')
69
+ : undefined;
70
+ const firstUser = assigneeUsers[0]?.user;
71
+ const firstUserName = getUserName(firstUser) || firstUser?.email || '';
72
+ const firstAssigneeSortName = (firstGroupName ?? firstUserName).toLowerCase();
73
+ return { ...task, assigneeUsers, firstAssigneeSortName };
71
74
  }
72
75
  return undefined;
73
76
  })
@@ -76,7 +79,7 @@ const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRole
76
79
  const sortedTaskList = sortTasksList(tagState, filteredTaskList, sortKey, sortOrder);
77
80
  return sortedTaskList;
78
81
  };
79
- const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupState, taskGroupViewState, userState, userRoleState, addressState, tagState, }) => {
82
+ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupState, taskGroupViewState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
80
83
  const { taskGroupsIds } = taskGroupViewState;
81
84
  const taskGroupsWithTasksList = taskGroupsIds
82
85
  .map((taskGroupId) => {
@@ -90,6 +93,7 @@ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupStat
90
93
  addressState,
91
94
  taskIds,
92
95
  tagState,
96
+ userGroupsState,
93
97
  });
94
98
  if (taskGroup != null) {
95
99
  return {
@@ -123,7 +127,7 @@ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupStat
123
127
  }
124
128
  return sortedTaskGroupsWithTasksList;
125
129
  };
126
- export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
130
+ export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
127
131
  const assigneeGroups = Object.keys(taskListState.taskIdsByAssignees);
128
132
  const taskGroupsWithTasksList = assigneeGroups.map((groupKey) => {
129
133
  const taskIds = taskListState.taskIdsByAssignees[groupKey];
@@ -135,6 +139,7 @@ export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userSt
135
139
  addressState,
136
140
  taskIds,
137
141
  tagState,
142
+ userGroupsState,
138
143
  });
139
144
  const assigneeIds = groupKey.split(',');
140
145
  const groupName = getUsersByUserIds(userState, assigneeIds)
@@ -155,7 +160,7 @@ export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userSt
155
160
  }
156
161
  return taskGroupsWithTasksList;
157
162
  };
158
- export const getTaskListGroupedByPriority = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
163
+ export const getTaskListGroupedByPriority = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
159
164
  const taskGroupsWithTasksList = ALL_PRIORITY_CODE.map((groupKey) => {
160
165
  const taskIds = taskListState.taskIdsByPriority[groupKey] ?? [];
161
166
  const tasksWithUserDetails = getTasksWithUserDetails({
@@ -166,6 +171,7 @@ export const getTaskListGroupedByPriority = ({ taskListState, taskState, userSta
166
171
  addressState,
167
172
  taskIds,
168
173
  tagState,
174
+ userGroupsState,
169
175
  });
170
176
  return {
171
177
  groupName: allTaskPriority.find((priority) => priority.code === groupKey)?.name ??
@@ -180,7 +186,7 @@ export const getTaskListGroupedByPriority = ({ taskListState, taskState, userSta
180
186
  }
181
187
  return taskGroupsWithTasksList;
182
188
  };
183
- const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
189
+ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
184
190
  const taskGroupsWithTasksList = ALL_TASK_STATUS_CODE.map((groupKey) => {
185
191
  const taskIds = taskListState.taskIdsByStatus[groupKey] ?? [];
186
192
  const tasksWithUserDetails = getTasksWithUserDetails({
@@ -191,6 +197,7 @@ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userR
191
197
  addressState,
192
198
  taskIds,
193
199
  tagState,
200
+ userGroupsState,
194
201
  });
195
202
  return {
196
203
  groupName: allTaskStatus.find((taskStatus) => taskStatus.code === groupKey)
@@ -205,7 +212,7 @@ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userR
205
212
  }
206
213
  return taskGroupsWithTasksList;
207
214
  };
208
- const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
215
+ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
209
216
  const tagGroups = Object.keys(taskListState.taskIdsByTags);
210
217
  const taskGroupsWithTasksList = tagGroups.map((groupKey) => {
211
218
  const taskIds = taskListState.taskIdsByTags[groupKey];
@@ -217,6 +224,7 @@ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRol
217
224
  addressState,
218
225
  taskIds,
219
226
  tagState,
227
+ userGroupsState,
220
228
  });
221
229
  const tagIds = groupKey.split(',');
222
230
  const groupName = getTagsByIds(tagState, tagIds)
@@ -236,7 +244,7 @@ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRol
236
244
  }
237
245
  return taskGroupsWithTasksList;
238
246
  };
239
- const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
247
+ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
240
248
  const taskGroupsWithTasksList = DUE_DATE_GROUP_KEYS.map((groupKey) => {
241
249
  const taskIds = taskListState.taskIdsByDueDate[groupKey];
242
250
  const tasksWithUserDetails = getTasksWithUserDetails({
@@ -247,6 +255,7 @@ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, user
247
255
  addressState,
248
256
  taskIds,
249
257
  tagState,
258
+ userGroupsState,
250
259
  });
251
260
  return {
252
261
  groupName: groupKey,
@@ -260,7 +269,7 @@ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, user
260
269
  }
261
270
  return taskGroupsWithTasksList;
262
271
  };
263
- const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRoleState, addressState, taskGroupState, taskGroupViewState, tagState, }) => {
272
+ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRoleState, addressState, taskGroupState, taskGroupViewState, tagState, userGroupsState, }) => {
264
273
  const { groupByKey } = taskListState.uiState;
265
274
  if (groupByKey === 'groupName') {
266
275
  return getTaskListGroupedByGroupName({
@@ -272,6 +281,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
272
281
  taskGroupState,
273
282
  taskGroupViewState,
274
283
  tagState,
284
+ userGroupsState,
275
285
  });
276
286
  }
277
287
  if (groupByKey === 'assignee') {
@@ -282,6 +292,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
282
292
  userRoleState,
283
293
  addressState,
284
294
  tagState,
295
+ userGroupsState,
285
296
  });
286
297
  }
287
298
  if (groupByKey === 'priority') {
@@ -292,6 +303,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
292
303
  userRoleState,
293
304
  addressState,
294
305
  tagState,
306
+ userGroupsState,
295
307
  });
296
308
  }
297
309
  if (groupByKey === 'status') {
@@ -302,6 +314,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
302
314
  userRoleState,
303
315
  addressState,
304
316
  tagState,
317
+ userGroupsState,
305
318
  });
306
319
  }
307
320
  if (groupByKey === 'tag') {
@@ -312,6 +325,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
312
325
  userRoleState,
313
326
  addressState,
314
327
  tagState,
328
+ userGroupsState,
315
329
  });
316
330
  }
317
331
  return getTaskListGroupedByDueDate({
@@ -321,6 +335,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
321
335
  userRoleState,
322
336
  addressState,
323
337
  tagState,
338
+ userGroupsState,
324
339
  });
325
340
  };
326
341
  export const getAllTasks = createSelector((state) => state.taskListState, (state) => state.taskState, (state) => state.userState, (state) => state.userRoleState, (state) => state.userListViewState, (state) => state.addressState, (state) => state.taskGroupState, (state) => state.taskGroupViewState, (state) => state.tagViewState, (state) => state.tagState, (state) => state.taskGroupTemplateState, (state) => state.taskGroupTemplateViewState, (state) => state.userGroupsState, (state) => state.userGroupListViewState, (_state, isTaskTemplatesEnabled) => isTaskTemplatesEnabled, (taskListState, taskState, userState, userRoleState, userListViewState, addressState, taskGroupState, taskGroupViewState, tagViewState, tagState, taskGroupTemplateState, taskGroupTemplateViewState, userGroupsState, userGroupListViewState, isTaskTemplatesEnabled) => {
@@ -334,6 +349,7 @@ export const getAllTasks = createSelector((state) => state.taskListState, (state
334
349
  taskGroupState,
335
350
  taskGroupViewState,
336
351
  tagState,
352
+ userGroupsState,
337
353
  });
338
354
  const fetchStateVariables = [
339
355
  taskListState,