@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
|
-
|
|
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
|
-
|
|
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,
|