From f22caea1e5490ebde597c76f75cbd67f9778869b Mon Sep 17 00:00:00 2001 From: chamiakJ Date: Wed, 25 Jun 2025 23:33:32 +0530 Subject: [PATCH] refactor(task-filters, project-view-header): streamline imports and optimize task fetching - Removed unused imports and optimized the import structure in ImprovedTaskFilters for better readability and performance. - Updated ProjectViewHeader to include a call to fetchTasksV3, ensuring enhanced task data is refreshed appropriately. - Adjusted task creation request type to Partial for improved type safety. --- .../task-management/improved-task-filters.tsx | 34 ++----------------- .../projectView/project-view-header.tsx | 5 ++- 2 files changed, 7 insertions(+), 32 deletions(-) diff --git a/worklenz-frontend/src/components/task-management/improved-task-filters.tsx b/worklenz-frontend/src/components/task-management/improved-task-filters.tsx index 9fefc16f..50c063f5 100644 --- a/worklenz-frontend/src/components/task-management/improved-task-filters.tsx +++ b/worklenz-frontend/src/components/task-management/improved-task-filters.tsx @@ -14,37 +14,18 @@ import { EyeOutlined, InboxOutlined, CheckOutlined, - SettingOutlined, - MoreOutlined, } from './antd-imports'; import { RootState } from '@/app/store'; -import { AppDispatch } from '@/app/store'; import { useAppSelector } from '@/hooks/useAppSelector'; import { useAppDispatch } from '@/hooks/useAppDispatch'; import useTabSearchParam from '@/hooks/useTabSearchParam'; -import { useSocket } from '@/socket/socketContext'; -import { SocketEvents } from '@/shared/socket-events'; -import { colors } from '@/styles/colors'; -import SingleAvatar from '@components/common/single-avatar/single-avatar'; import { useFilterDataLoader } from '@/hooks/useFilterDataLoader'; -import { - Dropdown, - Checkbox, - Button, - Space, - taskManagementAntdConfig -} from './antd-imports'; -import { toggleField, TaskListField } from '@/features/task-management/taskListFields.slice'; +import { toggleField } from '@/features/task-management/taskListFields.slice'; // Import Redux actions import { fetchTasksV3, setSelectedPriorities } from '@/features/task-management/task-management.slice'; import { setCurrentGrouping, selectCurrentGrouping } from '@/features/task-management/grouping.slice'; -import { fetchPriorities } from '@/features/taskAttributes/taskPrioritySlice'; -import { fetchLabelsByProject, fetchTaskAssignees, setMembers, setLabels } from '@/features/tasks/tasks.slice'; -import { getTeamMembers } from '@/features/team-members/team-members.slice'; -import { ITaskPriority } from '@/types/tasks/taskPriority.types'; -import { ITaskListColumn } from '@/types/tasks/taskList.types'; -import { IGroupBy } from '@/features/tasks/tasks.slice'; +import { setMembers, setLabels } from '@/features/tasks/tasks.slice'; // Optimized selectors with proper transformation logic const selectFilterData = createSelector( @@ -610,13 +591,10 @@ const ImprovedTaskFilters: React.FC = ({ }) => { const { t } = useTranslation('task-list-filters'); const dispatch = useAppDispatch(); - const { socket, connected } = useSocket(); // Get current state values for filter updates const currentTaskAssignees = useAppSelector(state => state.taskReducer.taskAssignees); - const currentBoardAssignees = useAppSelector(state => state.boardReducer.taskAssignees); const currentTaskLabels = useAppSelector(state => state.taskReducer.labels); - const currentBoardLabels = useAppSelector(state => state.boardReducer.labels); // Use the filter data loader hook useFilterDataLoader(); @@ -649,7 +627,6 @@ const ImprovedTaskFilters: React.FC = ({ const isDarkMode = useAppSelector(state => state.themeReducer?.mode === 'dark'); const { projectId } = useAppSelector(state => state.projectReducer); const { projectView } = useTabSearchParam(); - const { columns } = useAppSelector(state => state.taskReducer); // Theme-aware class names - memoize to prevent unnecessary re-renders const themeClasses = useMemo(() => ({ @@ -761,12 +738,7 @@ const ImprovedTaskFilters: React.FC = ({ console.log('Toggle archived:', !showArchived); }, [showArchived]); - // Show fields dropdown functionality - const handleColumnVisibilityChange = useCallback(async (col: ITaskListColumn) => { - if (!projectId) return; - console.log('Column visibility change:', col); - // TODO: Implement column visibility change - }, [projectId]); + return (
diff --git a/worklenz-frontend/src/pages/projects/projectView/project-view-header.tsx b/worklenz-frontend/src/pages/projects/projectView/project-view-header.tsx index bb6c35b6..1d639d9d 100644 --- a/worklenz-frontend/src/pages/projects/projectView/project-view-header.tsx +++ b/worklenz-frontend/src/pages/projects/projectView/project-view-header.tsx @@ -54,6 +54,7 @@ import useTabSearchParam from '@/hooks/useTabSearchParam'; import { addTaskCardToTheTop, fetchBoardTaskGroups } from '@/features/board/board-slice'; import { fetchPhasesByProjectId } from '@/features/projects/singleProject/phase/phases.slice'; import { fetchEnhancedKanbanGroups } from '@/features/enhanced-kanban/enhanced-kanban.slice'; +import { fetchTasksV3 } from '@/features/task-management/task-management.slice'; const ProjectViewHeader = () => { const navigate = useNavigate(); @@ -83,6 +84,8 @@ const ProjectViewHeader = () => { dispatch(fetchTaskListColumns(projectId)); dispatch(fetchPhasesByProjectId(projectId)) dispatch(fetchTaskGroups(projectId)); + // Also refresh the enhanced tasks data + dispatch(fetchTasksV3(projectId)); break; case 'board': // dispatch(fetchBoardTaskGroups(projectId)); @@ -166,7 +169,7 @@ const ProjectViewHeader = () => { try { setCreatingTask(true); - const body: ITaskCreateRequest = { + const body: Partial = { name: DEFAULT_TASK_NAME, project_id: selectedProject?.id, reporter_id: currentSession?.id,