chore(dependencies): update rimraf version and clean up package-lock.json

- Removed deprecated rimraf entries from package-lock.json to streamline dependencies.
- Added an override for rimraf in package.json to ensure compatibility with version 6.0.1.
- Refactored useTaskDragAndDrop and useTaskSocketHandlers hooks to use separate selectors for improved performance.
- Made minor style adjustments in project-view-header and project-view components for consistency.
This commit is contained in:
chamikaJ
2025-05-30 12:19:02 +05:30
parent b6e4ed9883
commit 8cdc8b3ad0
7 changed files with 23 additions and 118 deletions

View File

@@ -3934,23 +3934,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/@jest/core/node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"deprecated": "Rimraf versions prior to v4 are no longer supported",
"dev": true,
"license": "ISC",
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@jest/core/node_modules/supports-color": { "node_modules/@jest/core/node_modules/supports-color": {
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -4485,22 +4468,6 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/@mapbox/node-pre-gyp/node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"deprecated": "Rimraf versions prior to v4 are no longer supported",
"license": "ISC",
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@mapbox/node-pre-gyp/node_modules/semver": { "node_modules/@mapbox/node-pre-gyp/node_modules/semver": {
"version": "7.5.4", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
@@ -9102,23 +9069,6 @@
"node": "^10.12.0 || >=12.0.0" "node": "^10.12.0 || >=12.0.0"
} }
}, },
"node_modules/flat-cache/node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"deprecated": "Rimraf versions prior to v4 are no longer supported",
"dev": true,
"license": "ISC",
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/flatted": { "node_modules/flatted": {
"version": "3.2.7", "version": "3.2.7",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
@@ -9300,17 +9250,6 @@
"mkdirp": "bin/cmd.js" "mkdirp": "bin/cmd.js"
} }
}, },
"node_modules/fstream/node_modules/rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
}
},
"node_modules/function-bind": { "node_modules/function-bind": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -14983,22 +14922,6 @@
"node": ">=8.17.0" "node": ">=8.17.0"
} }
}, },
"node_modules/tmp/node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"deprecated": "Rimraf versions prior to v4 are no longer supported",
"license": "ISC",
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/tmpl": { "node_modules/tmpl": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",

View File

@@ -42,6 +42,9 @@
"reportFile": "test-reporter.xml", "reportFile": "test-reporter.xml",
"indent": 4 "indent": 4
}, },
"overrides": {
"rimraf": "^6.0.1"
},
"dependencies": { "dependencies": {
"@aws-sdk/client-s3": "^3.378.0", "@aws-sdk/client-s3": "^3.378.0",
"@aws-sdk/client-ses": "^3.378.0", "@aws-sdk/client-ses": "^3.378.0",

View File

@@ -19,10 +19,8 @@ import { IProjectTask } from '@/types/project/projectTasksViewModel.types';
export const useTaskDragAndDrop = () => { export const useTaskDragAndDrop = () => {
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
const { taskGroups, groupBy } = useAppSelector(state => ({ const taskGroups = useAppSelector(state => state.taskReducer.taskGroups);
taskGroups: state.taskReducer.taskGroups, const groupBy = useAppSelector(state => state.taskReducer.groupBy);
groupBy: state.taskReducer.groupBy,
}));
// Memoize sensors configuration for better performance // Memoize sensors configuration for better performance
const sensors = useSensors( const sensors = useSensors(

View File

@@ -49,8 +49,9 @@ export const useTaskSocketHandlers = () => {
const { socket } = useSocket(); const { socket } = useSocket();
const currentSession = useAuthService().getCurrentSession(); const currentSession = useAuthService().getCurrentSession();
const { loadingAssignees, taskGroups } = useAppSelector((state: any) => state.taskReducer); const loadingAssignees = useAppSelector((state: any) => state.taskReducer.loadingAssignees);
const { projectId } = useAppSelector((state: any) => state.projectReducer); const taskGroups = useAppSelector((state: any) => state.taskReducer.taskGroups);
const projectId = useAppSelector((state: any) => state.projectReducer.projectId);
// Memoize socket event handlers // Memoize socket event handlers
const handleAssigneesUpdate = useCallback( const handleAssigneesUpdate = useCallback(

View File

@@ -306,7 +306,7 @@ const ProjectViewHeader = () => {
{renderProjectAttributes()} {renderProjectAttributes()}
</Flex> </Flex>
} }
style={{ paddingInline: 0, marginBlockEnd: 12 }} style={{ paddingInline: 0}}
extra={renderHeaderActions()} extra={renderHeaderActions()}
/> />
{createPortal(<ProjectDrawer onClose={() => {}} />, document.body, 'project-drawer')} {createPortal(<ProjectDrawer onClose={() => {}} />, document.body, 'project-drawer')}

View File

@@ -1,6 +1,6 @@
import React, { useEffect, useState, useMemo, useCallback } from 'react'; import React, { useEffect, useState, useMemo, useCallback } from 'react';
import { PushpinFilled, PushpinOutlined, QuestionCircleOutlined } from '@ant-design/icons'; import { PushpinFilled, PushpinOutlined } from '@ant-design/icons';
import { Badge, Button, ConfigProvider, Flex, Tabs, TabsProps, Tooltip } from 'antd'; import { Button, ConfigProvider, Flex, Tabs } from 'antd';
import { useLocation, useNavigate, useParams, useSearchParams } from 'react-router-dom'; import { useLocation, useNavigate, useParams, useSearchParams } from 'react-router-dom';
import { createPortal } from 'react-dom'; import { createPortal } from 'react-dom';
@@ -117,7 +117,7 @@ const ProjectView = () => {
const tabMenuItems = useMemo(() => tabItems.map(item => ({ const tabMenuItems = useMemo(() => tabItems.map(item => ({
key: item.key, key: item.key,
label: ( label: (
<Flex align="center" style={{ color: colors.skyBlue }}> <Flex align="center" >
{item.label} {item.label}
{item.key === 'tasks-list' || item.key === 'board' ? ( {item.key === 'tasks-list' || item.key === 'board' ? (
<ConfigProvider wave={{ disabled: true }}> <ConfigProvider wave={{ disabled: true }}>
@@ -140,9 +140,6 @@ const ProjectView = () => {
) : ( ) : (
<PushpinOutlined <PushpinOutlined
size={20} size={20}
style={{
color: colors.skyBlue,
}}
/> />
) )
} }

View File

@@ -19,36 +19,19 @@ const ProjectViewTaskList = () => {
const [searchParams, setSearchParams] = useSearchParams(); const [searchParams, setSearchParams] = useSearchParams();
const [initialLoadComplete, setInitialLoadComplete] = useState(false); const [initialLoadComplete, setInitialLoadComplete] = useState(false);
// Combine related selectors to reduce subscriptions // Use separate selectors to avoid creating new objects
const { const projectId = useAppSelector(state => state.projectReducer.projectId);
projectId, const taskGroups = useAppSelector(state => state.taskReducer.taskGroups);
taskGroups, const loadingGroups = useAppSelector(state => state.taskReducer.loadingGroups);
loadingGroups, const groupBy = useAppSelector(state => state.taskReducer.groupBy);
groupBy, const archived = useAppSelector(state => state.taskReducer.archived);
archived, const fields = useAppSelector(state => state.taskReducer.fields);
fields, const search = useAppSelector(state => state.taskReducer.search);
search,
} = useAppSelector(state => ({
projectId: state.projectReducer.projectId,
taskGroups: state.taskReducer.taskGroups,
loadingGroups: state.taskReducer.loadingGroups,
groupBy: state.taskReducer.groupBy,
archived: state.taskReducer.archived,
fields: state.taskReducer.fields,
search: state.taskReducer.search,
}));
const { const statusCategories = useAppSelector(state => state.taskStatusReducer.statusCategories);
statusCategories, const loadingStatusCategories = useAppSelector(state => state.taskStatusReducer.loading);
loading: loadingStatusCategories,
} = useAppSelector(state => ({
statusCategories: state.taskStatusReducer.statusCategories,
loading: state.taskStatusReducer.loading,
}));
const { loadingPhases } = useAppSelector(state => ({ const loadingPhases = useAppSelector(state => state.phaseReducer.loadingPhases);
loadingPhases: state.phaseReducer.loadingPhases,
}));
// Single source of truth for loading state - EXCLUDE labels loading from skeleton // Single source of truth for loading state - EXCLUDE labels loading from skeleton
// Labels loading should not block the main task list display // Labels loading should not block the main task list display