diff --git a/worklenz-frontend/src/components/enhanced-kanban/VirtualizedTaskList.tsx b/worklenz-frontend/src/components/enhanced-kanban/VirtualizedTaskList.tsx index c6486b62..7269bf2e 100644 --- a/worklenz-frontend/src/components/enhanced-kanban/VirtualizedTaskList.tsx +++ b/worklenz-frontend/src/components/enhanced-kanban/VirtualizedTaskList.tsx @@ -73,8 +73,17 @@ const VirtualizedTaskList: React.FC = ({ if (tasks.length === 0) { return ( -
-
No tasks in this group
+
+
+ No tasks in this group +
); } diff --git a/worklenz-frontend/src/components/kanban-board-management-v2/kanbanGroup.tsx b/worklenz-frontend/src/components/kanban-board-management-v2/kanbanGroup.tsx index 3409237e..98f57505 100644 --- a/worklenz-frontend/src/components/kanban-board-management-v2/kanbanGroup.tsx +++ b/worklenz-frontend/src/components/kanban-board-management-v2/kanbanGroup.tsx @@ -173,7 +173,7 @@ const KanbanGroup: React.FC = ({ .kanban-group-empty { text-align: center; color: #bfbfbf; - padding: 32px 0; + padding: 48px 16px; } .kanban-group-add-task { padding: 12px; diff --git a/worklenz-frontend/src/components/task-list-v2/TaskListV2Table.tsx b/worklenz-frontend/src/components/task-list-v2/TaskListV2Table.tsx index 8d3c8452..7ef747ed 100644 --- a/worklenz-frontend/src/components/task-list-v2/TaskListV2Table.tsx +++ b/worklenz-frontend/src/components/task-list-v2/TaskListV2Table.tsx @@ -54,6 +54,7 @@ import { setCustomColumnModalAttributes, toggleCustomColumnModalOpen, } from '@/features/projects/singleProject/task-list-custom-columns/task-list-custom-columns-slice'; +import { fetchPhasesByProjectId } from '@/features/projects/singleProject/phase/phases.slice'; // Components import TaskRowWithSubtasks from './TaskRowWithSubtasks'; @@ -212,6 +213,7 @@ const TaskListV2Section: React.FC = () => { if (urlProjectId) { dispatch(fetchTasksV3(urlProjectId)); dispatch(fetchTaskListColumns(urlProjectId)); + dispatch(fetchPhasesByProjectId(urlProjectId)); } }, [dispatch, urlProjectId]); @@ -463,7 +465,7 @@ const TaskListV2Section: React.FC = () => { /> {isGroupEmpty && !isGroupCollapsed && (
-
+
{visibleColumns.map((column, index) => { const emptyColumnStyle = { width: column.width, @@ -482,7 +484,7 @@ const TaskListV2Section: React.FC = () => { })}
-
+
{t('noTasksInGroup')}
diff --git a/worklenz-frontend/src/components/task-management/task-group.tsx b/worklenz-frontend/src/components/task-management/task-group.tsx index 07d0b679..335f2815 100644 --- a/worklenz-frontend/src/components/task-management/task-group.tsx +++ b/worklenz-frontend/src/components/task-management/task-group.tsx @@ -312,7 +312,7 @@ const TaskGroup: React.FC = React.memo( {groupTasks.length === 0 ? (
-
+
No tasks in this group
@@ -487,7 +487,7 @@ const TaskGroup: React.FC = React.memo( .task-group-empty { display: flex; - height: 80px; + height: 120px; align-items: center; background: var(--task-bg-primary, white); transition: background-color 0.3s ease; diff --git a/worklenz-frontend/src/components/task-management/task-phase-dropdown.tsx b/worklenz-frontend/src/components/task-management/task-phase-dropdown.tsx index 49eacc87..536215e0 100644 --- a/worklenz-frontend/src/components/task-management/task-phase-dropdown.tsx +++ b/worklenz-frontend/src/components/task-management/task-phase-dropdown.tsx @@ -35,8 +35,6 @@ const TaskPhaseDropdown: React.FC = ({ (phaseId: string, phaseName: string) => { if (!task.id || !phaseId || !connected) return; - console.log('🎯 Phase change initiated:', { taskId: task.id, phaseId, phaseName }); - socket?.emit(SocketEvents.TASK_PHASE_CHANGE.toString(), { task_id: task.id, phase_id: phaseId, @@ -51,8 +49,6 @@ const TaskPhaseDropdown: React.FC = ({ const handlePhaseClear = useCallback(() => { if (!task.id || !connected) return; - console.log('🎯 Phase clear initiated:', { taskId: task.id }); - socket?.emit(SocketEvents.TASK_PHASE_CHANGE.toString(), { task_id: task.id, phase_id: null,