gantt-task-react-v 1.5.19 → 1.5.21

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.
@@ -10224,7 +10224,9 @@ const TaskListTableRowInner = forwardRef(
10224
10224
  if (task.type !== "empty") {
10225
10225
  scrollToTask(task);
10226
10226
  }
10227
- selectTaskOnMouseDown(task.id, event);
10227
+ if (event.detail < 2) {
10228
+ selectTaskOnMouseDown(task.id, event);
10229
+ }
10228
10230
  if (onClick) {
10229
10231
  onClick(task);
10230
10232
  }
@@ -19559,12 +19561,12 @@ const GanttDrawerInner = ({
19559
19561
  )
19560
19562
  ] }),
19561
19563
  /* @__PURE__ */ jsxs("div", { className: styles.body, children: [
19562
- data && onGoToTask && /* @__PURE__ */ jsxs("div", { className: styles.goToTaskBar, children: [
19563
- data.type === "task" && /* @__PURE__ */ jsxs(
19564
+ data && onGoToTask && /* @__PURE__ */ jsx("div", { className: styles.goToTaskBar, children: data.type === "arrow" && /* @__PURE__ */ jsxs(Fragment, { children: [
19565
+ /* @__PURE__ */ jsxs(
19564
19566
  "button",
19565
19567
  {
19566
19568
  className: styles.goToTaskButton,
19567
- onClick: () => onGoToTask(data.task.id),
19569
+ onClick: () => onGoToTask(data.taskFrom.id),
19568
19570
  type: "button",
19569
19571
  children: [
19570
19572
  /* @__PURE__ */ jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", children: /* @__PURE__ */ jsx(
@@ -19577,57 +19579,34 @@ const GanttDrawerInner = ({
19577
19579
  strokeLinejoin: "round"
19578
19580
  }
19579
19581
  ) }),
19580
- "Go to Task"
19582
+ "Go to ",
19583
+ data.taskFrom.name
19581
19584
  ]
19582
19585
  }
19583
19586
  ),
19584
- data.type === "arrow" && /* @__PURE__ */ jsxs(Fragment, { children: [
19585
- /* @__PURE__ */ jsxs(
19586
- "button",
19587
- {
19588
- className: styles.goToTaskButton,
19589
- onClick: () => onGoToTask(data.taskFrom.id),
19590
- type: "button",
19591
- children: [
19592
- /* @__PURE__ */ jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", children: /* @__PURE__ */ jsx(
19593
- "path",
19594
- {
19595
- d: "M2 7h10M8 3l4 4-4 4",
19596
- stroke: "currentColor",
19597
- strokeWidth: "1.5",
19598
- strokeLinecap: "round",
19599
- strokeLinejoin: "round"
19600
- }
19601
- ) }),
19602
- "Go to ",
19603
- data.taskFrom.name
19604
- ]
19605
- }
19606
- ),
19607
- /* @__PURE__ */ jsxs(
19608
- "button",
19609
- {
19610
- className: styles.goToTaskButton,
19611
- onClick: () => onGoToTask(data.taskTo.id),
19612
- type: "button",
19613
- children: [
19614
- /* @__PURE__ */ jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", children: /* @__PURE__ */ jsx(
19615
- "path",
19616
- {
19617
- d: "M2 7h10M8 3l4 4-4 4",
19618
- stroke: "currentColor",
19619
- strokeWidth: "1.5",
19620
- strokeLinecap: "round",
19621
- strokeLinejoin: "round"
19622
- }
19623
- ) }),
19624
- "Go to ",
19625
- data.taskTo.name
19626
- ]
19627
- }
19628
- )
19629
- ] })
19630
- ] }),
19587
+ /* @__PURE__ */ jsxs(
19588
+ "button",
19589
+ {
19590
+ className: styles.goToTaskButton,
19591
+ onClick: () => onGoToTask(data.taskTo.id),
19592
+ type: "button",
19593
+ children: [
19594
+ /* @__PURE__ */ jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", children: /* @__PURE__ */ jsx(
19595
+ "path",
19596
+ {
19597
+ d: "M2 7h10M8 3l4 4-4 4",
19598
+ stroke: "currentColor",
19599
+ strokeWidth: "1.5",
19600
+ strokeLinecap: "round",
19601
+ strokeLinejoin: "round"
19602
+ }
19603
+ ) }),
19604
+ "Go to ",
19605
+ data.taskTo.name
19606
+ ]
19607
+ }
19608
+ )
19609
+ ] }) }),
19631
19610
  data && renderContent ? renderContent(data) : null
19632
19611
  ] })
19633
19612
  ]
@@ -20813,13 +20792,16 @@ const Gantt = (props) => {
20813
20792
  if (enableDrawer) {
20814
20793
  setActiveArrowKey(null);
20815
20794
  setActiveTaskId(task.id);
20795
+ if ((drawerData == null ? void 0 : drawerData.type) === "task") {
20796
+ setDrawerData({ type: "task", task });
20797
+ }
20816
20798
  }
20817
20799
  selectTask(task.id);
20818
20800
  if (taskBar.onClick) {
20819
20801
  taskBar.onClick(task);
20820
20802
  }
20821
20803
  },
20822
- [enableDrawer, selectTask, taskBar]
20804
+ [enableDrawer, drawerData, selectTask, taskBar]
20823
20805
  );
20824
20806
  const handleTaskDoubleClick = useCallback(
20825
20807
  (task) => {
@@ -20864,17 +20846,31 @@ const Gantt = (props) => {
20864
20846
  setActiveTaskId(null);
20865
20847
  }, []);
20866
20848
  useEffect(() => {
20867
- if (!drawerData)
20849
+ if (!drawerData || drawerData.type !== "task")
20868
20850
  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);
20851
+ const currentTaskId = drawerData.task.id;
20852
+ if (selectedIdsMirror[currentTaskId])
20853
+ return;
20854
+ const selectedIds = Object.keys(selectedIdsMirror);
20855
+ if (selectedIds.length === 0) {
20856
+ setDrawerData(null);
20857
+ setActiveArrowKey(null);
20858
+ setActiveTaskId(null);
20859
+ return;
20860
+ }
20861
+ const newTaskId = selectedIds[0];
20862
+ for (const [, levelMap] of tasksMap) {
20863
+ const task = levelMap.get(newTaskId);
20864
+ if (task && task.type !== "empty") {
20865
+ setActiveTaskId(newTaskId);
20866
+ setDrawerData({ type: "task", task });
20867
+ return;
20875
20868
  }
20876
20869
  }
20877
- }, [drawerData, selectedIdsMirror]);
20870
+ setDrawerData(null);
20871
+ setActiveArrowKey(null);
20872
+ setActiveTaskId(null);
20873
+ }, [drawerData, selectedIdsMirror, tasksMap]);
20878
20874
  const handleGoToTask = useCallback(
20879
20875
  (taskId) => {
20880
20876
  for (const [comparisonLevel, levelMap] of tasksMap) {
@@ -10241,7 +10241,9 @@
10241
10241
  if (task.type !== "empty") {
10242
10242
  scrollToTask(task);
10243
10243
  }
10244
- selectTaskOnMouseDown(task.id, event);
10244
+ if (event.detail < 2) {
10245
+ selectTaskOnMouseDown(task.id, event);
10246
+ }
10245
10247
  if (onClick) {
10246
10248
  onClick(task);
10247
10249
  }
@@ -19576,12 +19578,12 @@
19576
19578
  )
19577
19579
  ] }),
19578
19580
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.body, children: [
19579
- data && onGoToTask && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.goToTaskBar, children: [
19580
- data.type === "task" && /* @__PURE__ */ jsxRuntime.jsxs(
19581
+ data && onGoToTask && /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.goToTaskBar, children: data.type === "arrow" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
19582
+ /* @__PURE__ */ jsxRuntime.jsxs(
19581
19583
  "button",
19582
19584
  {
19583
19585
  className: styles.goToTaskButton,
19584
- onClick: () => onGoToTask(data.task.id),
19586
+ onClick: () => onGoToTask(data.taskFrom.id),
19585
19587
  type: "button",
19586
19588
  children: [
19587
19589
  /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -19594,57 +19596,34 @@
19594
19596
  strokeLinejoin: "round"
19595
19597
  }
19596
19598
  ) }),
19597
- "Go to Task"
19599
+ "Go to ",
19600
+ data.taskFrom.name
19598
19601
  ]
19599
19602
  }
19600
19603
  ),
19601
- data.type === "arrow" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
19602
- /* @__PURE__ */ jsxRuntime.jsxs(
19603
- "button",
19604
- {
19605
- className: styles.goToTaskButton,
19606
- onClick: () => onGoToTask(data.taskFrom.id),
19607
- type: "button",
19608
- children: [
19609
- /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx(
19610
- "path",
19611
- {
19612
- d: "M2 7h10M8 3l4 4-4 4",
19613
- stroke: "currentColor",
19614
- strokeWidth: "1.5",
19615
- strokeLinecap: "round",
19616
- strokeLinejoin: "round"
19617
- }
19618
- ) }),
19619
- "Go to ",
19620
- data.taskFrom.name
19621
- ]
19622
- }
19623
- ),
19624
- /* @__PURE__ */ jsxRuntime.jsxs(
19625
- "button",
19626
- {
19627
- className: styles.goToTaskButton,
19628
- onClick: () => onGoToTask(data.taskTo.id),
19629
- type: "button",
19630
- children: [
19631
- /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx(
19632
- "path",
19633
- {
19634
- d: "M2 7h10M8 3l4 4-4 4",
19635
- stroke: "currentColor",
19636
- strokeWidth: "1.5",
19637
- strokeLinecap: "round",
19638
- strokeLinejoin: "round"
19639
- }
19640
- ) }),
19641
- "Go to ",
19642
- data.taskTo.name
19643
- ]
19644
- }
19645
- )
19646
- ] })
19647
- ] }),
19604
+ /* @__PURE__ */ jsxRuntime.jsxs(
19605
+ "button",
19606
+ {
19607
+ className: styles.goToTaskButton,
19608
+ onClick: () => onGoToTask(data.taskTo.id),
19609
+ type: "button",
19610
+ children: [
19611
+ /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx(
19612
+ "path",
19613
+ {
19614
+ d: "M2 7h10M8 3l4 4-4 4",
19615
+ stroke: "currentColor",
19616
+ strokeWidth: "1.5",
19617
+ strokeLinecap: "round",
19618
+ strokeLinejoin: "round"
19619
+ }
19620
+ ) }),
19621
+ "Go to ",
19622
+ data.taskTo.name
19623
+ ]
19624
+ }
19625
+ )
19626
+ ] }) }),
19648
19627
  data && renderContent ? renderContent(data) : null
19649
19628
  ] })
19650
19629
  ]
@@ -20830,13 +20809,16 @@
20830
20809
  if (enableDrawer) {
20831
20810
  setActiveArrowKey(null);
20832
20811
  setActiveTaskId(task.id);
20812
+ if ((drawerData == null ? void 0 : drawerData.type) === "task") {
20813
+ setDrawerData({ type: "task", task });
20814
+ }
20833
20815
  }
20834
20816
  selectTask(task.id);
20835
20817
  if (taskBar.onClick) {
20836
20818
  taskBar.onClick(task);
20837
20819
  }
20838
20820
  },
20839
- [enableDrawer, selectTask, taskBar]
20821
+ [enableDrawer, drawerData, selectTask, taskBar]
20840
20822
  );
20841
20823
  const handleTaskDoubleClick = React.useCallback(
20842
20824
  (task) => {
@@ -20881,17 +20863,31 @@
20881
20863
  setActiveTaskId(null);
20882
20864
  }, []);
20883
20865
  React.useEffect(() => {
20884
- if (!drawerData)
20866
+ if (!drawerData || drawerData.type !== "task")
20885
20867
  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);
20868
+ const currentTaskId = drawerData.task.id;
20869
+ if (selectedIdsMirror[currentTaskId])
20870
+ return;
20871
+ const selectedIds = Object.keys(selectedIdsMirror);
20872
+ if (selectedIds.length === 0) {
20873
+ setDrawerData(null);
20874
+ setActiveArrowKey(null);
20875
+ setActiveTaskId(null);
20876
+ return;
20877
+ }
20878
+ const newTaskId = selectedIds[0];
20879
+ for (const [, levelMap] of tasksMap) {
20880
+ const task = levelMap.get(newTaskId);
20881
+ if (task && task.type !== "empty") {
20882
+ setActiveTaskId(newTaskId);
20883
+ setDrawerData({ type: "task", task });
20884
+ return;
20892
20885
  }
20893
20886
  }
20894
- }, [drawerData, selectedIdsMirror]);
20887
+ setDrawerData(null);
20888
+ setActiveArrowKey(null);
20889
+ setActiveTaskId(null);
20890
+ }, [drawerData, selectedIdsMirror, tasksMap]);
20895
20891
  const handleGoToTask = React.useCallback(
20896
20892
  (taskId) => {
20897
20893
  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.21",
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",