feat(enhanced-kanban): integrate task assignee, label, and priority updates

- Added actions to update task assignees, labels, and priority within the enhanced Kanban feature, enhancing task management capabilities.
- Updated task drawer components to utilize new actions for real-time updates based on user interactions.
- Improved state management for better handling of task properties across different views.
This commit is contained in:
shancds
2025-07-01 09:42:47 +05:30
parent b179a0274f
commit 8fcd4d0d53
4 changed files with 185 additions and 12 deletions

View File

@@ -26,6 +26,7 @@ import { setTaskAssignee } from '@/features/task-drawer/task-drawer.slice';
import useTabSearchParam from '@/hooks/useTabSearchParam';
import { updateTaskAssignees as updateBoardTaskAssignees } from '@/features/board/board-slice';
import { updateTaskAssignees as updateTasksListTaskAssignees } from '@/features/tasks/tasks.slice';
import { updateEnhancedKanbanTaskAssignees } from '@/features/enhanced-kanban/enhanced-kanban.slice';
interface TaskDrawerAssigneeSelectorProps {
task: ITaskViewModel;
}
@@ -88,12 +89,12 @@ const TaskDrawerAssigneeSelector = ({ task }: TaskDrawerAssigneeSelectorProps) =
SocketEvents.QUICK_ASSIGNEES_UPDATE.toString(),
(data: ITaskAssigneesUpdateResponse) => {
dispatch(setTaskAssignee(data));
// if (tab === 'tasks-list') {
// dispatch(updateTasksListTaskAssignees(data));
// }
// if (tab === 'board') {
// dispatch(updateBoardTaskAssignees(data));
// }
if (tab === 'tasks-list') {
dispatch(updateTasksListTaskAssignees(data));
}
if (tab === 'board') {
dispatch(updateEnhancedKanbanTaskAssignees(data));
}
}
);
} catch (error) {

View File

@@ -28,6 +28,7 @@ import { useAppDispatch } from '@/hooks/useAppDispatch';
import { setTaskLabels } from '@/features/task-drawer/task-drawer.slice';
import { setLabels, updateTaskLabel } from '@/features/tasks/tasks.slice';
import { setBoardLabels, updateBoardTaskLabel } from '@/features/board/board-slice';
import { updateEnhancedKanbanTaskLabels } from '@/features/enhanced-kanban/enhanced-kanban.slice';
import { ILabelsChangeResponse } from '@/types/tasks/taskList.types';
import { ITaskLabelFilter } from '@/types/tasks/taskLabel.types';
@@ -65,7 +66,7 @@ const TaskDrawerLabels = ({ task, t }: TaskDrawerLabelsProps) => {
dispatch(updateTaskLabel(data));
}
if (tab === 'board') {
dispatch(updateBoardTaskLabel(data));
dispatch(updateEnhancedKanbanTaskLabels(data));
}
}
);
@@ -90,9 +91,9 @@ const TaskDrawerLabels = ({ task, t }: TaskDrawerLabelsProps) => {
if (tab === 'tasks-list') {
dispatch(updateTaskLabel(data));
}
if (tab === 'board') {
dispatch(updateBoardTaskLabel(data));
}
if (tab === 'board') {
dispatch(updateEnhancedKanbanTaskLabels(data));
}
}
);
};

View File

@@ -15,6 +15,7 @@ import { ITaskListPriorityChangeResponse } from '@/types/tasks/task-list-priorit
import { setTaskPriority } from '@/features/task-drawer/task-drawer.slice';
import { updateTaskPriority as updateBoardTaskPriority } from '@/features/board/board-slice';
import { updateTaskPriority as updateTasksListTaskPriority } from '@/features/tasks/tasks.slice';
import { updateEnhancedKanbanTaskPriority } from '@/features/enhanced-kanban/enhanced-kanban.slice';
type PriorityDropdownProps = {
task: ITaskViewModel;
@@ -48,7 +49,7 @@ const PriorityDropdown = ({ task }: PriorityDropdownProps) => {
dispatch(updateTasksListTaskPriority(data));
}
if (tab === 'board') {
dispatch(updateBoardTaskPriority(data));
dispatch(updateEnhancedKanbanTaskPriority(data));
}
}
);