gantt-task-react-v 1.5.19 → 1.5.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20813,13 +20813,16 @@ const Gantt = (props) => {
20813
20813
  if (enableDrawer) {
20814
20814
  setActiveArrowKey(null);
20815
20815
  setActiveTaskId(task.id);
20816
+ if ((drawerData == null ? void 0 : drawerData.type) === "task") {
20817
+ setDrawerData({ type: "task", task });
20818
+ }
20816
20819
  }
20817
20820
  selectTask(task.id);
20818
20821
  if (taskBar.onClick) {
20819
20822
  taskBar.onClick(task);
20820
20823
  }
20821
20824
  },
20822
- [enableDrawer, selectTask, taskBar]
20825
+ [enableDrawer, drawerData, selectTask, taskBar]
20823
20826
  );
20824
20827
  const handleTaskDoubleClick = useCallback(
20825
20828
  (task) => {
@@ -20864,17 +20867,31 @@ const Gantt = (props) => {
20864
20867
  setActiveTaskId(null);
20865
20868
  }, []);
20866
20869
  useEffect(() => {
20867
- if (!drawerData)
20870
+ if (!drawerData || drawerData.type !== "task")
20868
20871
  return;
20869
- if (drawerData.type === "task") {
20870
- const taskId = drawerData.task.id;
20871
- if (!selectedIdsMirror[taskId]) {
20872
- setDrawerData(null);
20873
- setActiveArrowKey(null);
20874
- setActiveTaskId(null);
20872
+ const currentTaskId = drawerData.task.id;
20873
+ if (selectedIdsMirror[currentTaskId])
20874
+ return;
20875
+ const selectedIds = Object.keys(selectedIdsMirror);
20876
+ if (selectedIds.length === 0) {
20877
+ setDrawerData(null);
20878
+ setActiveArrowKey(null);
20879
+ setActiveTaskId(null);
20880
+ return;
20881
+ }
20882
+ const newTaskId = selectedIds[0];
20883
+ for (const [, levelMap] of tasksMap) {
20884
+ const task = levelMap.get(newTaskId);
20885
+ if (task && task.type !== "empty") {
20886
+ setActiveTaskId(newTaskId);
20887
+ setDrawerData({ type: "task", task });
20888
+ return;
20875
20889
  }
20876
20890
  }
20877
- }, [drawerData, selectedIdsMirror]);
20891
+ setDrawerData(null);
20892
+ setActiveArrowKey(null);
20893
+ setActiveTaskId(null);
20894
+ }, [drawerData, selectedIdsMirror, tasksMap]);
20878
20895
  const handleGoToTask = useCallback(
20879
20896
  (taskId) => {
20880
20897
  for (const [comparisonLevel, levelMap] of tasksMap) {
@@ -20830,13 +20830,16 @@
20830
20830
  if (enableDrawer) {
20831
20831
  setActiveArrowKey(null);
20832
20832
  setActiveTaskId(task.id);
20833
+ if ((drawerData == null ? void 0 : drawerData.type) === "task") {
20834
+ setDrawerData({ type: "task", task });
20835
+ }
20833
20836
  }
20834
20837
  selectTask(task.id);
20835
20838
  if (taskBar.onClick) {
20836
20839
  taskBar.onClick(task);
20837
20840
  }
20838
20841
  },
20839
- [enableDrawer, selectTask, taskBar]
20842
+ [enableDrawer, drawerData, selectTask, taskBar]
20840
20843
  );
20841
20844
  const handleTaskDoubleClick = React.useCallback(
20842
20845
  (task) => {
@@ -20881,17 +20884,31 @@
20881
20884
  setActiveTaskId(null);
20882
20885
  }, []);
20883
20886
  React.useEffect(() => {
20884
- if (!drawerData)
20887
+ if (!drawerData || drawerData.type !== "task")
20885
20888
  return;
20886
- if (drawerData.type === "task") {
20887
- const taskId = drawerData.task.id;
20888
- if (!selectedIdsMirror[taskId]) {
20889
- setDrawerData(null);
20890
- setActiveArrowKey(null);
20891
- setActiveTaskId(null);
20889
+ const currentTaskId = drawerData.task.id;
20890
+ if (selectedIdsMirror[currentTaskId])
20891
+ return;
20892
+ const selectedIds = Object.keys(selectedIdsMirror);
20893
+ if (selectedIds.length === 0) {
20894
+ setDrawerData(null);
20895
+ setActiveArrowKey(null);
20896
+ setActiveTaskId(null);
20897
+ return;
20898
+ }
20899
+ const newTaskId = selectedIds[0];
20900
+ for (const [, levelMap] of tasksMap) {
20901
+ const task = levelMap.get(newTaskId);
20902
+ if (task && task.type !== "empty") {
20903
+ setActiveTaskId(newTaskId);
20904
+ setDrawerData({ type: "task", task });
20905
+ return;
20892
20906
  }
20893
20907
  }
20894
- }, [drawerData, selectedIdsMirror]);
20908
+ setDrawerData(null);
20909
+ setActiveArrowKey(null);
20910
+ setActiveTaskId(null);
20911
+ }, [drawerData, selectedIdsMirror, tasksMap]);
20895
20912
  const handleGoToTask = React.useCallback(
20896
20913
  (taskId) => {
20897
20914
  for (const [comparisonLevel, levelMap] of tasksMap) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gantt-task-react-v",
3
- "version": "1.5.19",
3
+ "version": "1.5.20",
4
4
  "description": "Interactive Gantt Chart for React with TypeScript.",
5
5
  "author": "aguilanbon",
6
6
  "homepage": "https://github.com/aguilanbon/gantt-task-react-v",