Merge branch 'test/row-kanban-board-v1.1.6' of https://github.com/shancds/worklenz-open-source into test/row-kanban-board-v1.1.7
This commit is contained in:
@@ -26,5 +26,8 @@
|
||||
"noDueDate": "No due date",
|
||||
"save": "Save",
|
||||
"clear": "Clear",
|
||||
"nextWeek": "Next week"
|
||||
"nextWeek": "Next week",
|
||||
"noSubtasks": "No subtasks",
|
||||
"showSubtasks": "Show subtasks",
|
||||
"hideSubtasks": "Hide subtasks"
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ import {
|
||||
fetchTask,
|
||||
} from '@/features/task-drawer/task-drawer.slice';
|
||||
import { updateSubtask } from '@/features/board/board-slice';
|
||||
import { updateEnhancedKanbanSubtask } from '@/features/enhanced-kanban/enhanced-kanban.slice';
|
||||
|
||||
type SubTaskTableProps = {
|
||||
subTasks: ISubTask[];
|
||||
@@ -111,6 +112,13 @@ const SubTaskTable = ({ subTasks, loadingSubTasks, refreshSubTasks, t }: SubTask
|
||||
|
||||
try {
|
||||
await tasksApiService.deleteTask(taskId);
|
||||
dispatch(
|
||||
updateEnhancedKanbanSubtask({
|
||||
sectionId: '',
|
||||
subtask: { id: taskId, parent_task_id: selectedTaskId || '', manual_progress: false },
|
||||
mode: 'delete',
|
||||
})
|
||||
);
|
||||
dispatch(
|
||||
updateSubtask({
|
||||
sectionId: '',
|
||||
@@ -118,10 +126,7 @@ const SubTaskTable = ({ subTasks, loadingSubTasks, refreshSubTasks, t }: SubTask
|
||||
mode: 'delete',
|
||||
})
|
||||
);
|
||||
|
||||
// Note: Enhanced kanban updates are now handled by the global socket handler
|
||||
// No need to dispatch here as it will be handled by useTaskSocketHandlers
|
||||
|
||||
|
||||
refreshSubTasks();
|
||||
} catch (error) {
|
||||
logger.error('Error deleting subtask:', error);
|
||||
|
||||
@@ -10,7 +10,7 @@ import { useAuthService } from '@/hooks/useAuth';
|
||||
import TaskDrawerStatusDropdown from '../task-drawer-status-dropdown/task-drawer-status-dropdown';
|
||||
import { tasksApiService } from '@/api/tasks/tasks.api.service';
|
||||
import { useAppDispatch } from '@/hooks/useAppDispatch';
|
||||
import { setSelectedTaskId, setShowTaskDrawer } from '@/features/task-drawer/task-drawer.slice';
|
||||
import { setSelectedTaskId } from '@/features/task-drawer/task-drawer.slice';
|
||||
import { useSocket } from '@/socket/socketContext';
|
||||
import { SocketEvents } from '@/shared/socket-events';
|
||||
import useTaskDrawerUrlSync from '@/hooks/useTaskDrawerUrlSync';
|
||||
@@ -18,6 +18,7 @@ import { deleteTask } from '@/features/tasks/tasks.slice';
|
||||
import { deleteTask as deleteTaskFromManagement } from '@/features/task-management/task-management.slice';
|
||||
import { deselectTask } from '@/features/task-management/selection.slice';
|
||||
import { deleteBoardTask } from '@/features/board/board-slice';
|
||||
import { deleteTask as deleteKanbanTask, updateEnhancedKanbanSubtask } from '@/features/enhanced-kanban/enhanced-kanban.slice';
|
||||
import useTabSearchParam from '@/hooks/useTabSearchParam';
|
||||
import { ITaskViewModel } from '@/types/tasks/task.types';
|
||||
|
||||
@@ -61,9 +62,18 @@ const TaskDrawerHeader = ({ inputRef, t }: TaskDrawerHeaderProps) => {
|
||||
|
||||
// Clear the task drawer state and URL
|
||||
dispatch(setSelectedTaskId(null));
|
||||
dispatch(setShowTaskDrawer(false));
|
||||
|
||||
// Clear the URL parameter last to avoid race conditions
|
||||
dispatch(deleteTask({ taskId: selectedTaskId }));
|
||||
dispatch(deleteBoardTask({ sectionId: '', taskId: selectedTaskId }));
|
||||
if (taskFormViewModel?.task?.is_sub_task) {
|
||||
dispatch(updateEnhancedKanbanSubtask({
|
||||
sectionId: '',
|
||||
subtask: { id: selectedTaskId, parent_task_id: taskFormViewModel?.task?.parent_task_id || '', manual_progress: false },
|
||||
mode: 'delete',
|
||||
}));
|
||||
} else {
|
||||
dispatch(deleteKanbanTask(selectedTaskId)); // <-- Add this line
|
||||
}
|
||||
// Reset the flag after a short delay
|
||||
setTimeout(() => {
|
||||
clearTaskFromUrl();
|
||||
isDeleting.current = false;
|
||||
|
||||
Reference in New Issue
Block a user