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

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,13 @@ 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
66
+ .map((gId) => userGroupsState.userGroupByUserGroupId[gId]?.name ?? '')
67
+ .find((name) => name !== '');
68
+ const firstUserName = getUserName(assigneeUsers[0]?.user);
69
+ const firstAssigneeSortName = (firstGroupName ?? firstUserName ?? '').toLowerCase();
70
+ return { ...task, assigneeUsers, firstAssigneeSortName };
71
71
  }
72
72
  return undefined;
73
73
  })
@@ -76,7 +76,7 @@ const getTasksWithUserDetails = ({ taskListState, taskState, userState, userRole
76
76
  const sortedTaskList = sortTasksList(tagState, filteredTaskList, sortKey, sortOrder);
77
77
  return sortedTaskList;
78
78
  };
79
- const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupState, taskGroupViewState, userState, userRoleState, addressState, tagState, }) => {
79
+ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupState, taskGroupViewState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
80
80
  const { taskGroupsIds } = taskGroupViewState;
81
81
  const taskGroupsWithTasksList = taskGroupsIds
82
82
  .map((taskGroupId) => {
@@ -90,6 +90,7 @@ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupStat
90
90
  addressState,
91
91
  taskIds,
92
92
  tagState,
93
+ userGroupsState,
93
94
  });
94
95
  if (taskGroup != null) {
95
96
  return {
@@ -123,7 +124,7 @@ const getTaskListGroupedByGroupName = ({ taskListState, taskState, taskGroupStat
123
124
  }
124
125
  return sortedTaskGroupsWithTasksList;
125
126
  };
126
- export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
127
+ export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
127
128
  const assigneeGroups = Object.keys(taskListState.taskIdsByAssignees);
128
129
  const taskGroupsWithTasksList = assigneeGroups.map((groupKey) => {
129
130
  const taskIds = taskListState.taskIdsByAssignees[groupKey];
@@ -135,6 +136,7 @@ export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userSt
135
136
  addressState,
136
137
  taskIds,
137
138
  tagState,
139
+ userGroupsState,
138
140
  });
139
141
  const assigneeIds = groupKey.split(',');
140
142
  const groupName = getUsersByUserIds(userState, assigneeIds)
@@ -155,7 +157,7 @@ export const getTaskListGroupedByAssignees = ({ taskListState, taskState, userSt
155
157
  }
156
158
  return taskGroupsWithTasksList;
157
159
  };
158
- export const getTaskListGroupedByPriority = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
160
+ export const getTaskListGroupedByPriority = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
159
161
  const taskGroupsWithTasksList = ALL_PRIORITY_CODE.map((groupKey) => {
160
162
  const taskIds = taskListState.taskIdsByPriority[groupKey] ?? [];
161
163
  const tasksWithUserDetails = getTasksWithUserDetails({
@@ -166,6 +168,7 @@ export const getTaskListGroupedByPriority = ({ taskListState, taskState, userSta
166
168
  addressState,
167
169
  taskIds,
168
170
  tagState,
171
+ userGroupsState,
169
172
  });
170
173
  return {
171
174
  groupName: allTaskPriority.find((priority) => priority.code === groupKey)?.name ??
@@ -180,7 +183,7 @@ export const getTaskListGroupedByPriority = ({ taskListState, taskState, userSta
180
183
  }
181
184
  return taskGroupsWithTasksList;
182
185
  };
183
- const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
186
+ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
184
187
  const taskGroupsWithTasksList = ALL_TASK_STATUS_CODE.map((groupKey) => {
185
188
  const taskIds = taskListState.taskIdsByStatus[groupKey] ?? [];
186
189
  const tasksWithUserDetails = getTasksWithUserDetails({
@@ -191,6 +194,7 @@ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userR
191
194
  addressState,
192
195
  taskIds,
193
196
  tagState,
197
+ userGroupsState,
194
198
  });
195
199
  return {
196
200
  groupName: allTaskStatus.find((taskStatus) => taskStatus.code === groupKey)
@@ -205,7 +209,7 @@ const getTaskListGroupedByStatus = ({ taskListState, taskState, userState, userR
205
209
  }
206
210
  return taskGroupsWithTasksList;
207
211
  };
208
- const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
212
+ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
209
213
  const tagGroups = Object.keys(taskListState.taskIdsByTags);
210
214
  const taskGroupsWithTasksList = tagGroups.map((groupKey) => {
211
215
  const taskIds = taskListState.taskIdsByTags[groupKey];
@@ -217,6 +221,7 @@ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRol
217
221
  addressState,
218
222
  taskIds,
219
223
  tagState,
224
+ userGroupsState,
220
225
  });
221
226
  const tagIds = groupKey.split(',');
222
227
  const groupName = getTagsByIds(tagState, tagIds)
@@ -236,7 +241,7 @@ const getTaskListGroupedByTags = ({ taskListState, taskState, userState, userRol
236
241
  }
237
242
  return taskGroupsWithTasksList;
238
243
  };
239
- const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, }) => {
244
+ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, userRoleState, addressState, tagState, userGroupsState, }) => {
240
245
  const taskGroupsWithTasksList = DUE_DATE_GROUP_KEYS.map((groupKey) => {
241
246
  const taskIds = taskListState.taskIdsByDueDate[groupKey];
242
247
  const tasksWithUserDetails = getTasksWithUserDetails({
@@ -247,6 +252,7 @@ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, user
247
252
  addressState,
248
253
  taskIds,
249
254
  tagState,
255
+ userGroupsState,
250
256
  });
251
257
  return {
252
258
  groupName: groupKey,
@@ -260,7 +266,7 @@ const getTaskListGroupedByDueDate = ({ taskListState, taskState, userState, user
260
266
  }
261
267
  return taskGroupsWithTasksList;
262
268
  };
263
- const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRoleState, addressState, taskGroupState, taskGroupViewState, tagState, }) => {
269
+ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRoleState, addressState, taskGroupState, taskGroupViewState, tagState, userGroupsState, }) => {
264
270
  const { groupByKey } = taskListState.uiState;
265
271
  if (groupByKey === 'groupName') {
266
272
  return getTaskListGroupedByGroupName({
@@ -272,6 +278,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
272
278
  taskGroupState,
273
279
  taskGroupViewState,
274
280
  tagState,
281
+ userGroupsState,
275
282
  });
276
283
  }
277
284
  if (groupByKey === 'assignee') {
@@ -282,6 +289,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
282
289
  userRoleState,
283
290
  addressState,
284
291
  tagState,
292
+ userGroupsState,
285
293
  });
286
294
  }
287
295
  if (groupByKey === 'priority') {
@@ -292,6 +300,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
292
300
  userRoleState,
293
301
  addressState,
294
302
  tagState,
303
+ userGroupsState,
295
304
  });
296
305
  }
297
306
  if (groupByKey === 'status') {
@@ -302,6 +311,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
302
311
  userRoleState,
303
312
  addressState,
304
313
  tagState,
314
+ userGroupsState,
305
315
  });
306
316
  }
307
317
  if (groupByKey === 'tag') {
@@ -312,6 +322,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
312
322
  userRoleState,
313
323
  addressState,
314
324
  tagState,
325
+ userGroupsState,
315
326
  });
316
327
  }
317
328
  return getTaskListGroupedByDueDate({
@@ -321,6 +332,7 @@ const getTaskGroupsWithTaskList = ({ taskListState, taskState, userState, userRo
321
332
  userRoleState,
322
333
  addressState,
323
334
  tagState,
335
+ userGroupsState,
324
336
  });
325
337
  };
326
338
  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 +346,7 @@ export const getAllTasks = createSelector((state) => state.taskListState, (state
334
346
  taskGroupState,
335
347
  taskGroupViewState,
336
348
  tagState,
349
+ userGroupsState,
337
350
  });
338
351
  const fetchStateVariables = [
339
352
  taskListState,