gantt-task-react-v 1.1.12 → 1.1.14

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.
@@ -8,8 +8,6 @@ type ContextMenuProps = {
8
8
  handleAction: (task: RenderTask, action: (meta: ActionMetaType) => void) => void;
9
9
  handleCloseContextMenu: () => void;
10
10
  options: ContextMenuOptionType[];
11
- /** Optional callback invoked to select the task that opened the context menu (useful for task list) */
12
- onSelectTask?: (taskId: string) => void;
13
11
  /** Optional boundary element to contain the context menu (like tooltips) */
14
12
  boundaryElement?: RefObject<HTMLElement>;
15
13
  };
@@ -3,5 +3,5 @@ import { ContextMenuType, Task, RenderTask } from "../../types";
3
3
  export declare const useContextMenu: (wrapperRef: RefObject<HTMLDivElement>, scrollToTask: (task: Task) => void) => {
4
4
  contextMenu: ContextMenuType;
5
5
  handleCloseContextMenu: () => void;
6
- handleOpenContextMenu: (task: RenderTask, clientX: number, clientY: number) => void;
6
+ handleOpenContextMenu: (task: RenderTask, clientX: number, clientY: number, options?: readonly unknown[]) => void;
7
7
  };
@@ -17968,11 +17968,14 @@ const useContextMenu = (wrapperRef, scrollToTask) => {
17968
17968
  y: 0
17969
17969
  });
17970
17970
  const handleOpenContextMenu = useCallback(
17971
- (task, clientX, clientY) => {
17971
+ (task, clientX, clientY, options) => {
17972
17972
  const wrapperNode = wrapperRef.current;
17973
17973
  if (!wrapperNode) {
17974
17974
  return;
17975
17975
  }
17976
+ if (options && options.length === 0) {
17977
+ return;
17978
+ }
17976
17979
  const { top, left } = wrapperNode.getBoundingClientRect();
17977
17980
  setContextMenu({
17978
17981
  task,
@@ -18094,10 +18097,6 @@ function ContextMenu(props) {
18094
18097
  return;
18095
18098
  }
18096
18099
  handleAction(task, option.action);
18097
- requestAnimationFrame(() => {
18098
- var _a2;
18099
- (_a2 = props.onSelectTask) == null ? void 0 : _a2.call(props, task.id);
18100
- });
18101
18100
  },
18102
18101
  [handleAction, handleCloseContextMenu, task]
18103
18102
  );
@@ -19118,19 +19117,6 @@ const Gantt = (props) => {
19118
19117
  [mapTaskToCoordinates, setScrollXProgrammatically]
19119
19118
  );
19120
19119
  const { contextMenu, handleCloseContextMenu, handleOpenContextMenu } = useContextMenu(wrapperRef, scrollToTask);
19121
- const handleOpenContextMenuForRow = useCallback(
19122
- (task, clientX, clientY) => {
19123
- try {
19124
- if (onRowContextMenu && task) {
19125
- onRowContextMenu(task);
19126
- }
19127
- } catch (err) {
19128
- console.error(err);
19129
- }
19130
- handleOpenContextMenu(task, clientX, clientY);
19131
- },
19132
- [onRowContextMenu, handleOpenContextMenu]
19133
- );
19134
19120
  const [ganttContextMenu, setGanttContextMenu] = useState({
19135
19121
  task: null,
19136
19122
  x: 0,
@@ -19947,6 +19933,22 @@ const Gantt = (props) => {
19947
19933
  createDeleteOption(locale)
19948
19934
  ];
19949
19935
  }, [taskList.contextMenuOptions, locale]);
19936
+ const handleOpenContextMenuForRow = useCallback(
19937
+ (task, clientX, clientY) => {
19938
+ try {
19939
+ if (onRowContextMenu && task) {
19940
+ onRowContextMenu(task);
19941
+ }
19942
+ } catch (err) {
19943
+ console.error(err);
19944
+ }
19945
+ if (task && task.type !== "empty" && contextMenuOptions.length > 0) {
19946
+ selectTask(task.id);
19947
+ }
19948
+ handleOpenContextMenu(task, clientX, clientY, contextMenuOptions);
19949
+ },
19950
+ [onRowContextMenu, handleOpenContextMenu, selectTask, contextMenuOptions]
19951
+ );
19950
19952
  const ganttContextMenuOptions = useMemo(() => {
19951
19953
  if (taskBar.taskGanttContextMenuOption) {
19952
19954
  return taskBar.taskGanttContextMenuOption;
@@ -20257,7 +20259,7 @@ const Gantt = (props) => {
20257
20259
  verticalScrollbarRef
20258
20260
  }
20259
20261
  ),
20260
- taskList.enableTableListContextMenu && !waitCommitTasks && /* @__PURE__ */ jsx(
20262
+ taskList.enableTableListContextMenu && !waitCommitTasks && contextMenuOptions.length > 0 && /* @__PURE__ */ jsx(
20261
20263
  ContextMenu,
20262
20264
  {
20263
20265
  checkHasCopyTasks,
@@ -20266,7 +20268,6 @@ const Gantt = (props) => {
20266
20268
  distances,
20267
20269
  handleAction,
20268
20270
  handleCloseContextMenu,
20269
- onSelectTask: selectTask,
20270
20271
  options: contextMenuOptions,
20271
20272
  boundaryElement: taskListHorizontalScrollRef
20272
20273
  }
@@ -17985,11 +17985,14 @@
17985
17985
  y: 0
17986
17986
  });
17987
17987
  const handleOpenContextMenu = React.useCallback(
17988
- (task, clientX, clientY) => {
17988
+ (task, clientX, clientY, options) => {
17989
17989
  const wrapperNode = wrapperRef.current;
17990
17990
  if (!wrapperNode) {
17991
17991
  return;
17992
17992
  }
17993
+ if (options && options.length === 0) {
17994
+ return;
17995
+ }
17993
17996
  const { top, left } = wrapperNode.getBoundingClientRect();
17994
17997
  setContextMenu({
17995
17998
  task,
@@ -18111,10 +18114,6 @@
18111
18114
  return;
18112
18115
  }
18113
18116
  handleAction(task, option.action);
18114
- requestAnimationFrame(() => {
18115
- var _a2;
18116
- (_a2 = props.onSelectTask) == null ? void 0 : _a2.call(props, task.id);
18117
- });
18118
18117
  },
18119
18118
  [handleAction, handleCloseContextMenu, task]
18120
18119
  );
@@ -19135,19 +19134,6 @@
19135
19134
  [mapTaskToCoordinates, setScrollXProgrammatically]
19136
19135
  );
19137
19136
  const { contextMenu, handleCloseContextMenu, handleOpenContextMenu } = useContextMenu(wrapperRef, scrollToTask);
19138
- const handleOpenContextMenuForRow = React.useCallback(
19139
- (task, clientX, clientY) => {
19140
- try {
19141
- if (onRowContextMenu && task) {
19142
- onRowContextMenu(task);
19143
- }
19144
- } catch (err) {
19145
- console.error(err);
19146
- }
19147
- handleOpenContextMenu(task, clientX, clientY);
19148
- },
19149
- [onRowContextMenu, handleOpenContextMenu]
19150
- );
19151
19137
  const [ganttContextMenu, setGanttContextMenu] = React.useState({
19152
19138
  task: null,
19153
19139
  x: 0,
@@ -19964,6 +19950,22 @@
19964
19950
  createDeleteOption(locale)
19965
19951
  ];
19966
19952
  }, [taskList.contextMenuOptions, locale]);
19953
+ const handleOpenContextMenuForRow = React.useCallback(
19954
+ (task, clientX, clientY) => {
19955
+ try {
19956
+ if (onRowContextMenu && task) {
19957
+ onRowContextMenu(task);
19958
+ }
19959
+ } catch (err) {
19960
+ console.error(err);
19961
+ }
19962
+ if (task && task.type !== "empty" && contextMenuOptions.length > 0) {
19963
+ selectTask(task.id);
19964
+ }
19965
+ handleOpenContextMenu(task, clientX, clientY, contextMenuOptions);
19966
+ },
19967
+ [onRowContextMenu, handleOpenContextMenu, selectTask, contextMenuOptions]
19968
+ );
19967
19969
  const ganttContextMenuOptions = React.useMemo(() => {
19968
19970
  if (taskBar.taskGanttContextMenuOption) {
19969
19971
  return taskBar.taskGanttContextMenuOption;
@@ -20274,7 +20276,7 @@
20274
20276
  verticalScrollbarRef
20275
20277
  }
20276
20278
  ),
20277
- taskList.enableTableListContextMenu && !waitCommitTasks && /* @__PURE__ */ jsxRuntime.jsx(
20279
+ taskList.enableTableListContextMenu && !waitCommitTasks && contextMenuOptions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
20278
20280
  ContextMenu,
20279
20281
  {
20280
20282
  checkHasCopyTasks,
@@ -20283,7 +20285,6 @@
20283
20285
  distances,
20284
20286
  handleAction,
20285
20287
  handleCloseContextMenu,
20286
- onSelectTask: selectTask,
20287
20288
  options: contextMenuOptions,
20288
20289
  boundaryElement: taskListHorizontalScrollRef
20289
20290
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gantt-task-react-v",
3
- "version": "1.1.12",
3
+ "version": "1.1.14",
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",