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:
77
worklenz-backend/package-lock.json
generated
77
worklenz-backend/package-lock.json
generated
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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')}
|
||||||
|
|||||||
@@ -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,
|
|
||||||
}}
|
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user