Merge branch 'release-v2.1.4' of https://github.com/Worklenz/worklenz into feature/team-utilization
This commit is contained in:
@@ -70,6 +70,9 @@ const initialState: TaskManagementState = {
|
||||
loadingColumns: false,
|
||||
columns: [],
|
||||
customColumns: [],
|
||||
// Add sort-related state
|
||||
sortField: '',
|
||||
sortOrder: 'ASC',
|
||||
};
|
||||
|
||||
// Async thunk to fetch tasks from API
|
||||
@@ -239,12 +242,16 @@ export const fetchTasksV3 = createAsyncThunk(
|
||||
// Get archived state from task management slice
|
||||
const archivedState = state.taskManagement.archived;
|
||||
|
||||
// Get sort state from task management slice
|
||||
const sortField = state.taskManagement.sortField;
|
||||
const sortOrder = state.taskManagement.sortOrder;
|
||||
|
||||
const config: ITaskListConfigV2 = {
|
||||
id: projectId,
|
||||
archived: archivedState,
|
||||
group: currentGrouping || '',
|
||||
field: '',
|
||||
order: '',
|
||||
field: sortField,
|
||||
order: sortOrder,
|
||||
search: searchValue,
|
||||
statuses: '',
|
||||
members: selectedAssignees,
|
||||
@@ -763,6 +770,16 @@ const taskManagementSlice = createSlice({
|
||||
toggleArchived: state => {
|
||||
state.archived = !state.archived;
|
||||
},
|
||||
setSortField: (state, action: PayloadAction<string>) => {
|
||||
state.sortField = action.payload;
|
||||
},
|
||||
setSortOrder: (state, action: PayloadAction<'ASC' | 'DESC'>) => {
|
||||
state.sortOrder = action.payload;
|
||||
},
|
||||
setSort: (state, action: PayloadAction<{ field: string; order: 'ASC' | 'DESC' }>) => {
|
||||
state.sortField = action.payload.field;
|
||||
state.sortOrder = action.payload.order;
|
||||
},
|
||||
resetTaskManagement: state => {
|
||||
state.loading = false;
|
||||
state.error = null;
|
||||
@@ -771,6 +788,8 @@ const taskManagementSlice = createSlice({
|
||||
state.selectedPriorities = [];
|
||||
state.search = '';
|
||||
state.archived = false;
|
||||
state.sortField = '';
|
||||
state.sortOrder = 'ASC';
|
||||
state.ids = [];
|
||||
state.entities = {};
|
||||
},
|
||||
@@ -1160,6 +1179,9 @@ export const {
|
||||
setSearch,
|
||||
setArchived,
|
||||
toggleArchived,
|
||||
setSortField,
|
||||
setSortOrder,
|
||||
setSort,
|
||||
resetTaskManagement,
|
||||
toggleTaskExpansion,
|
||||
addSubtaskToParent,
|
||||
@@ -1192,8 +1214,10 @@ export const selectError = (state: RootState) => state.taskManagement.error;
|
||||
export const selectSelectedPriorities = (state: RootState) =>
|
||||
state.taskManagement.selectedPriorities;
|
||||
export const selectSearch = (state: RootState) => state.taskManagement.search;
|
||||
export const selectSubtaskLoading = (state: RootState, taskId: string) =>
|
||||
state.taskManagement.loadingSubtasks[taskId] || false;
|
||||
export const selectSortField = (state: RootState) => state.taskManagement.sortField;
|
||||
export const selectSortOrder = (state: RootState) => state.taskManagement.sortOrder;
|
||||
export const selectSort = (state: RootState) => ({ field: state.taskManagement.sortField, order: state.taskManagement.sortOrder });
|
||||
export const selectSubtaskLoading = (state: RootState, taskId: string) => state.taskManagement.loadingSubtasks[taskId] || false;
|
||||
|
||||
// Memoized selectors to prevent unnecessary re-renders
|
||||
export const selectTasksByStatus = createSelector(
|
||||
|
||||
Reference in New Issue
Block a user