feat(task-filters): implement comprehensive filter clearing functionality

- Added logic to clear label, assignee, and priority filters in ImprovedTaskFilters, enhancing user experience by allowing users to reset all filters at once.
- Updated the dependency array in the useEffect hook to include currentTaskLabels and currentTaskAssignees, ensuring proper updates on filter changes.
- Modified task management slice to change the delimiter for selected labels, assignees, and priorities from commas to spaces for improved readability.
This commit is contained in:
chamiakJ
2025-06-25 23:46:38 +05:30
parent e096bc66ab
commit 19cd0e577c
2 changed files with 21 additions and 4 deletions

View File

@@ -748,6 +748,23 @@ const ImprovedTaskFilters: React.FC<ImprovedTaskFiltersProps> = ({
dispatch(setBoardSearch(''));
}
// Clear label filters
const clearedLabels = currentTaskLabels.map(label => ({
...label,
selected: false
}));
dispatch(setLabels(clearedLabels));
// Clear assignee filters
const clearedAssignees = currentTaskAssignees.map(member => ({
...member,
selected: false
}));
dispatch(setMembers(clearedAssignees));
// Clear priority filters
dispatch(setSelectedPriorities([]));
// Clear other filters
setShowArchived(false);
@@ -755,7 +772,7 @@ const ImprovedTaskFilters: React.FC<ImprovedTaskFiltersProps> = ({
dispatch(fetchTasksV3(projectId));
console.log('Clear all filters');
}, [projectId, projectView, dispatch]);
}, [projectId, projectView, dispatch, currentTaskLabels, currentTaskAssignees]);
const toggleArchived = useCallback(() => {
setShowArchived(!showArchived);

View File

@@ -141,17 +141,17 @@ export const fetchTasksV3 = createAsyncThunk(
// Get selected labels from taskReducer
const selectedLabels = state.taskReducer.labels
? state.taskReducer.labels.filter(l => l.selected).map(l => l.id).join(',')
? state.taskReducer.labels.filter(l => l.selected).map(l => l.id).join(' ')
: '';
// Get selected assignees from taskReducer
const selectedAssignees = state.taskReducer.taskAssignees
? state.taskReducer.taskAssignees.filter(m => m.selected).map(m => m.id).join(',')
? state.taskReducer.taskAssignees.filter(m => m.selected).map(m => m.id).join(' ')
: '';
// Get selected priorities from taskManagement slice
const selectedPriorities = state.taskManagement.selectedPriorities
? state.taskManagement.selectedPriorities.join(',')
? state.taskManagement.selectedPriorities.join(' ')
: '';
// Get search value from taskReducer