@reltio/components 1.4.1528 → 1.4.1530

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.
Files changed (31) hide show
  1. package/cjs/components/CollapseButton/CollapseButton.js +1 -1
  2. package/cjs/components/ModeSwitcherSelect/ModeSwitcherSelect.d.ts +4 -4
  3. package/cjs/components/ModeSwitcherSelect/ModeSwitcherSelect.js +2 -2
  4. package/cjs/components/workflow/cards/GenericWorkflowTaskCard/GenericWorkflowTaskCard.js +11 -4
  5. package/cjs/components/workflow/components/TaskActions/TaskActions.d.ts +5 -4
  6. package/cjs/components/workflow/components/TaskActions/TaskActions.js +3 -9
  7. package/cjs/components/workflow/components/WorkflowComments/WorkflowComments.d.ts +13 -17
  8. package/cjs/components/workflow/components/WorkflowComments/WorkflowComments.js +30 -14
  9. package/cjs/components/workflow/components/WorkflowComments/styles.d.ts +4 -4
  10. package/cjs/components/workflow/components/WorkflowComments/styles.js +6 -1
  11. package/cjs/components/workflow/hooks/useWorkflowActions.d.ts +2 -2
  12. package/cjs/components/workflow/hooks/useWorkflowActions.js +4 -2
  13. package/cjs/components/workflow/hooks/useWorkflowComments.d.ts +3 -1
  14. package/cjs/components/workflow/index.d.ts +1 -0
  15. package/cjs/components/workflow/index.js +3 -1
  16. package/esm/components/CollapseButton/CollapseButton.js +1 -1
  17. package/esm/components/ModeSwitcherSelect/ModeSwitcherSelect.d.ts +4 -4
  18. package/esm/components/ModeSwitcherSelect/ModeSwitcherSelect.js +2 -2
  19. package/esm/components/workflow/cards/GenericWorkflowTaskCard/GenericWorkflowTaskCard.js +11 -4
  20. package/esm/components/workflow/components/TaskActions/TaskActions.d.ts +5 -4
  21. package/esm/components/workflow/components/TaskActions/TaskActions.js +3 -9
  22. package/esm/components/workflow/components/WorkflowComments/WorkflowComments.d.ts +13 -17
  23. package/esm/components/workflow/components/WorkflowComments/WorkflowComments.js +32 -16
  24. package/esm/components/workflow/components/WorkflowComments/styles.d.ts +4 -4
  25. package/esm/components/workflow/components/WorkflowComments/styles.js +6 -1
  26. package/esm/components/workflow/hooks/useWorkflowActions.d.ts +2 -2
  27. package/esm/components/workflow/hooks/useWorkflowActions.js +4 -2
  28. package/esm/components/workflow/hooks/useWorkflowComments.d.ts +3 -1
  29. package/esm/components/workflow/index.d.ts +1 -0
  30. package/esm/components/workflow/index.js +1 -0
  31. package/package.json +3 -3
@@ -42,6 +42,6 @@ var CollapseButton = function (_a) {
42
42
  var tooltipProps = {
43
43
  tooltipTitle: tooltipTitle
44
44
  };
45
- return react_1.default.createElement(SmallIconButton_1.SmallIconButtonWithTooltip, __assign({}, buttonProps, tooltipProps, otherProps));
45
+ return (react_1.default.createElement(SmallIconButton_1.SmallIconButtonWithTooltip, __assign({ "data-reltio-id": "collapse-button" }, buttonProps, tooltipProps, otherProps)));
46
46
  };
47
47
  exports.default = CollapseButton;
@@ -2,15 +2,15 @@ import React from 'react';
2
2
  declare type Option = {
3
3
  label: string;
4
4
  value: string;
5
- description: string;
6
- icon: React.ElementType;
5
+ description?: string;
6
+ icon?: React.ElementType;
7
7
  };
8
8
  declare type Button = Option & {
9
9
  onClick: (value: string) => void;
10
10
  };
11
11
  declare type ModeSwitcherSelectProps = {
12
- optionsGroup: Option[];
13
- buttonsGroup: Button[];
12
+ optionsGroup?: Option[];
13
+ buttonsGroup?: Button[];
14
14
  value: string;
15
15
  onChange?: (value: string) => void;
16
16
  disabled?: boolean;
@@ -35,7 +35,7 @@ var Tooltip_1 = __importDefault(require("@material-ui/core/Tooltip"));
35
35
  var styles_1 = require("./styles");
36
36
  var isButton = function (value) { return 'onClick' in value; };
37
37
  var ModeSwitcherSelect = function (_a) {
38
- var optionsGroup = _a.optionsGroup, buttonsGroup = _a.buttonsGroup, value = _a.value, onChange = _a.onChange, _b = _a.disabled, disabled = _b === void 0 ? false : _b;
38
+ var _b = _a.optionsGroup, optionsGroup = _b === void 0 ? [] : _b, _c = _a.buttonsGroup, buttonsGroup = _c === void 0 ? [] : _c, value = _a.value, onChange = _a.onChange, _d = _a.disabled, disabled = _d === void 0 ? false : _d;
39
39
  var styles = (0, styles_1.useStyles)();
40
40
  var handleChange = function (e) {
41
41
  var value = e.target.value;
@@ -60,7 +60,7 @@ var ModeSwitcherSelect = function (_a) {
60
60
  }
61
61
  return (react_1.default.createElement(MenuItem_1.default, __assign({ key: value }, menuItemProps, { "data-reltio-id": "reltio-profile-select-mode-".concat(value) }),
62
62
  react_1.default.createElement(Box_1.default, { className: styles.menuItemInner },
63
- react_1.default.createElement(IconComponent, { className: styles.menuItemIcon }),
63
+ IconComponent && react_1.default.createElement(IconComponent, { className: styles.menuItemIcon }),
64
64
  react_1.default.createElement(Box_1.default, null,
65
65
  react_1.default.createElement(Typography_1.default, { className: styles.menuItemLabel }, label),
66
66
  react_1.default.createElement(Typography_1.default, { className: styles.menuItemDescription }, description)))));
@@ -43,16 +43,23 @@ var LineDecorator_1 = __importDefault(require("../../components/LineDecorator/Li
43
43
  var useWorkflowColor_1 = require("../../hooks/useWorkflowColor");
44
44
  var useWorkflowCheckPermission_1 = require("../../hooks/useWorkflowCheckPermission");
45
45
  var CollaborationIcon_1 = __importDefault(require("../../../../icons/CollaborationIcon"));
46
+ var useWorkflowActions_1 = require("../../hooks/useWorkflowActions");
46
47
  var GenericWorkflowTaskCard = function (_a) {
47
48
  var _b;
48
49
  var task = _a.task, children = _a.children, actions = _a.actions, Icon = _a.Icon;
49
- var taskId = task.taskId, dueDate = task.dueDate, priority = task.priority, assignee = task.assignee, createdBy = task.createdBy, createTime = task.createTime, step = task.displayName, processDefinitionDisplayName = task.processDefinitionDisplayName, objectURIs = task.objectURIs, processInstanceComments = task.processInstanceComments, possibleActions = task.possibleActions, isTaskOpen = task.isOpen;
50
+ var taskId = task.taskId, dueDate = task.dueDate, priority = task.priority, assignee = task.assignee, createdBy = task.createdBy, createTime = task.createTime, step = task.displayName, processDefinitionDisplayName = task.processDefinitionDisplayName, objectURIs = task.objectURIs, processInstanceComments = task.processInstanceComments, possibleActions = task.possibleActions, isTaskOpen = task.isOpen, preferredAction = task.preferredAction;
50
51
  var dcrId = (0, helpers_1.getDCRId)(objectURIs);
51
52
  var color = (0, useWorkflowColor_1.useWorkflowColor)({ processDefinitionDisplayName: processDefinitionDisplayName });
52
53
  var styles = (0, styles_1.useStyles)({ color: color });
53
54
  var _c = (0, react_1.useState)(false), isExpanded = _c[0], setExpanded = _c[1];
54
55
  var checkWorkflowPermission = (0, useWorkflowCheckPermission_1.useWorkflowCheckPermission)();
55
56
  var canViewComments = checkWorkflowPermission('VIEW_PROCESS_INSTANCE_COMMENTS');
57
+ var _d = (0, useWorkflowActions_1.useWorkflowActions)({
58
+ taskId: taskId,
59
+ possibleActions: possibleActions,
60
+ assignee: assignee,
61
+ isOpen: isTaskOpen
62
+ }), workflowActions = _d.actions, actionRequestIsInProgress = _d.actionRequestIsInProgress;
56
63
  return (react_1.default.createElement("div", { className: styles.card },
57
64
  react_1.default.createElement("div", { className: (0, classnames_1.default)((_b = {}, _b[styles.withBackground] = isExpanded, _b)) },
58
65
  react_1.default.createElement("div", { className: styles.lineWrapper },
@@ -68,7 +75,7 @@ var GenericWorkflowTaskCard = function (_a) {
68
75
  react_1.default.createElement(CollapseButton_1.default, { isOpen: isExpanded, size: "L", onClick: function () {
69
76
  setExpanded(!isExpanded);
70
77
  } })),
71
- react_1.default.createElement("div", { className: styles.infoBlock },
78
+ react_1.default.createElement("div", { className: styles.infoBlock, "data-reltio-id": "info-block" },
72
79
  react_1.default.createElement("div", { className: styles.flex },
73
80
  dcrId && (react_1.default.createElement("div", { className: styles.info },
74
81
  ui_i18n_1.default.text('DCR ID'),
@@ -89,7 +96,7 @@ var GenericWorkflowTaskCard = function (_a) {
89
96
  canViewComments && (processInstanceComments === null || processInstanceComments === void 0 ? void 0 : processInstanceComments.length) > 0 && (react_1.default.createElement("div", { className: styles.commentsInfo },
90
97
  react_1.default.createElement(CollaborationIcon_1.default, { className: styles.commentsIcon }),
91
98
  react_1.default.createElement("div", { className: styles.infoValue }, processInstanceComments.length)))),
92
- actions || (react_1.default.createElement(TaskActions_1.default, { taskId: taskId, possibleActions: possibleActions, assignee: assignee, isTaskOpen: isTaskOpen })))))),
99
+ actions || (react_1.default.createElement(TaskActions_1.default, { actions: workflowActions, isInProgress: actionRequestIsInProgress })))))),
93
100
  isExpanded && (react_1.default.createElement(LineDecorator_1.default, { plain: true },
94
101
  react_1.default.createElement("div", { className: styles.controlsBox },
95
102
  react_1.default.createElement("div", { className: styles.controlsInRow },
@@ -99,6 +106,6 @@ var GenericWorkflowTaskCard = function (_a) {
99
106
  isExpanded && (react_1.default.createElement(react_1.default.Fragment, null,
100
107
  children,
101
108
  canViewComments && (react_1.default.createElement("div", { className: styles.comments },
102
- react_1.default.createElement(WorkflowComments_1.default, { taskId: taskId, processInstanceComments: processInstanceComments, isTaskOpen: isTaskOpen })))))));
109
+ react_1.default.createElement(WorkflowComments_1.default, { workflowActions: workflowActions, actionRequestIsInProgress: actionRequestIsInProgress, preferredAction: preferredAction, taskId: taskId, processInstanceComments: processInstanceComments, isTaskOpen: isTaskOpen })))))));
103
110
  };
104
111
  exports.default = GenericWorkflowTaskCard;
@@ -1,7 +1,8 @@
1
1
  /// <reference types="react" />
2
- import { WorkflowTaskData } from '@reltio/mdm-sdk';
3
- declare type Props = Pick<WorkflowTaskData, 'taskId' | 'possibleActions' | 'assignee'> & {
4
- isTaskOpen?: WorkflowTaskData['isOpen'];
2
+ import { TaskAction } from '../../hooks/useWorkflowActions';
3
+ declare type Props = {
4
+ isInProgress?: boolean;
5
+ actions: TaskAction[];
5
6
  };
6
- declare const TaskActions: ({ taskId, possibleActions, assignee, isTaskOpen }: Props) => JSX.Element;
7
+ declare const TaskActions: ({ actions, isInProgress: disabled }: Props) => JSX.Element;
7
8
  export default TaskActions;
@@ -5,21 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var react_1 = __importDefault(require("react"));
7
7
  var MoreVert_1 = __importDefault(require("@material-ui/icons/MoreVert"));
8
- var useWorkflowActions_1 = require("../../hooks/useWorkflowActions");
9
8
  var DropDownMenuButton_1 = __importDefault(require("../../../DropDownMenuButton/DropDownMenuButton"));
10
9
  var SmallIconButton_1 = __importDefault(require("../../../SmallIconButton/SmallIconButton"));
11
10
  var TaskActions = function (_a) {
12
- var taskId = _a.taskId, possibleActions = _a.possibleActions, assignee = _a.assignee, isTaskOpen = _a.isTaskOpen;
13
- var _b = (0, useWorkflowActions_1.useWorkflowActions)({
14
- taskId: taskId,
15
- possibleActions: possibleActions,
16
- assignee: assignee,
17
- isOpen: isTaskOpen
18
- }), actions = _b.actions, disabled = _b.actionRequestIsInProgress;
11
+ var actions = _a.actions, disabled = _a.isInProgress;
19
12
  return actions.length > 0 ? (react_1.default.createElement(DropDownMenuButton_1.default, { buttonComponent: SmallIconButton_1.default, buttonProps: {
20
13
  icon: MoreVert_1.default,
21
14
  size: 'L',
22
- disabled: disabled
15
+ disabled: disabled,
16
+ 'data-reltio-id': 'task-actions'
23
17
  }, menuId: 'workflow-actions', menuItems: actions })) : null;
24
18
  };
25
19
  exports.default = TaskActions;
@@ -1,17 +1,13 @@
1
- export function WorkflowComments({ processInstanceComments, taskId, isTaskOpen }: {
2
- processInstanceComments: any;
3
- taskId: any;
4
- isTaskOpen: any;
5
- }): JSX.Element;
6
- export namespace WorkflowComments {
7
- namespace propTypes {
8
- const processInstanceComments: PropTypes.Requireable<PropTypes.InferProps<{
9
- author: PropTypes.Requireable<string>;
10
- id: PropTypes.Requireable<string>;
11
- message: PropTypes.Requireable<string>;
12
- time: PropTypes.Requireable<number>;
13
- }>[]>;
14
- const taskId: PropTypes.Requireable<string>;
15
- }
16
- }
17
- import PropTypes from "prop-types";
1
+ /// <reference types="react" />
2
+ import { WorkflowAction, WorkflowComment } from '@reltio/mdm-sdk';
3
+ import { TaskAction } from '../../hooks/useWorkflowActions';
4
+ declare type Props = {
5
+ actionRequestIsInProgress?: boolean;
6
+ workflowActions: TaskAction[];
7
+ processInstanceComments: WorkflowComment[];
8
+ taskId: string;
9
+ isTaskOpen: boolean;
10
+ preferredAction: WorkflowAction;
11
+ };
12
+ export declare const WorkflowComments: ({ workflowActions: actions, actionRequestIsInProgress, processInstanceComments, taskId, isTaskOpen, preferredAction }: Props) => JSX.Element;
13
+ export {};
@@ -22,6 +22,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
26
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
27
+ if (ar || !(i in from)) {
28
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29
+ ar[i] = from[i];
30
+ }
31
+ }
32
+ return to.concat(ar || Array.prototype.slice.call(from));
33
+ };
25
34
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
36
  };
@@ -32,29 +41,42 @@ var ramda_1 = require("ramda");
32
41
  var Input_1 = __importDefault(require("@material-ui/core/Input"));
33
42
  var InputAdornment_1 = __importDefault(require("@material-ui/core/InputAdornment"));
34
43
  var Send_1 = __importDefault(require("@material-ui/icons/Send"));
35
- var prop_types_1 = __importDefault(require("prop-types"));
36
44
  var ui_i18n_1 = __importDefault(require("ui-i18n"));
45
+ var Button_1 = __importDefault(require("@material-ui/core/Button"));
37
46
  var CollapsedComments_1 = require("./CollapsedComments");
38
47
  var ExpandedComments_1 = require("./ExpandedComments");
39
48
  var styles_1 = require("./styles");
40
49
  var useWorkflowComments_1 = require("../../hooks/useWorkflowComments");
41
50
  var SmallIconButton_1 = require("../../../SmallIconButton");
51
+ var ModeSwitcherSelect_1 = require("../../../ModeSwitcherSelect/ModeSwitcherSelect");
42
52
  var getValue = function (e) { return e.target.value; };
43
53
  var WorkflowComments = function (_a) {
44
- var processInstanceComments = _a.processInstanceComments, taskId = _a.taskId, isTaskOpen = _a.isTaskOpen;
54
+ var actions = _a.workflowActions, actionRequestIsInProgress = _a.actionRequestIsInProgress, processInstanceComments = _a.processInstanceComments, taskId = _a.taskId, isTaskOpen = _a.isTaskOpen, preferredAction = _a.preferredAction;
45
55
  var styles = (0, styles_1.useWorkflowStyles)();
46
56
  var _b = (0, react_1.useState)(false), expanded = _b[0], setExpanded = _b[1];
47
57
  var _c = (0, react_1.useState)(''), comment = _c[0], setComment = _c[1];
48
- var _d = (0, useWorkflowComments_1.useWorkflowComments)({
58
+ var _d = (0, react_1.useState)(preferredAction.label), currentAction = _d[0], setCurrentAction = _d[1];
59
+ var _e = (0, useWorkflowComments_1.useWorkflowComments)({
49
60
  processInstanceComments: processInstanceComments,
50
61
  taskId: taskId,
51
62
  isOpen: isTaskOpen
52
- }), comments = _d.comments, writeComment = _d.writeComment, readOnly = _d.readOnly;
63
+ }), comments = _e.comments, writeComment = _e.writeComment, readOnly = _e.readOnly;
53
64
  var sendComment = (0, react_1.useCallback)(function () {
54
65
  writeComment(comment);
55
66
  setComment('');
56
67
  }, [comment, writeComment]);
57
68
  var onChange = (0, ramda_1.pipe)(getValue, setComment);
69
+ var BUTTONS_GROUP = (0, react_1.useMemo)(function () { return __spreadArray([], actions.map(function (_a) {
70
+ var text = _a.text, onClick = _a.onClick;
71
+ return ({
72
+ label: text,
73
+ onClick: function () {
74
+ setCurrentAction(text);
75
+ onClick(comment);
76
+ },
77
+ value: text
78
+ });
79
+ }), true); }, [actions, comment]);
58
80
  return (react_1.default.createElement("div", { className: styles.container },
59
81
  react_1.default.createElement("div", { className: styles.title },
60
82
  " ",
@@ -62,15 +84,9 @@ var WorkflowComments = function (_a) {
62
84
  " "),
63
85
  react_1.default.createElement("div", { className: styles.commentsContainer }, expanded || comments.length < 3 ? (react_1.default.createElement(ExpandedComments_1.ExpandedComments, { comments: comments })) : (react_1.default.createElement(CollapsedComments_1.CollapsedComments, { onClick: function () { return setExpanded(true); }, comments: comments }))),
64
86
  !readOnly && (react_1.default.createElement(Input_1.default, { endAdornment: react_1.default.createElement(InputAdornment_1.default, { position: "end" },
65
- react_1.default.createElement(SmallIconButton_1.SmallIconButton, { icon: Send_1.default, disabled: comment.length === 0, onClick: sendComment })), classes: { root: styles.filledInputRoot }, placeholder: ui_i18n_1.default.text('Write a comment'), value: comment, onKeyPress: (0, ramda_1.when)((0, ramda_1.propEq)('key', 'Enter'), sendComment), onChange: onChange, disableUnderline: true }))));
87
+ react_1.default.createElement(SmallIconButton_1.SmallIconButton, { icon: Send_1.default, disabled: comment.length === 0, onClick: sendComment, "data-reltio-id": "send-button" })), classes: { root: styles.filledInputRoot }, placeholder: ui_i18n_1.default.text('Write a comment'), value: comment, onKeyPress: (0, ramda_1.when)((0, ramda_1.both)((0, ramda_1.propEq)('key', 'Enter'), (0, ramda_1.always)(comment.length > 0)), sendComment), onChange: onChange, disableUnderline: true })),
88
+ react_1.default.createElement("div", { className: styles.modeSwitcherWrapper },
89
+ BUTTONS_GROUP.length === 1 && (react_1.default.createElement(Button_1.default, { variant: "outlined", onClick: BUTTONS_GROUP[0].onClick, disabled: actionRequestIsInProgress }, BUTTONS_GROUP[0].label)),
90
+ BUTTONS_GROUP.length > 1 && (react_1.default.createElement(ModeSwitcherSelect_1.ModeSwitcherSelect, { buttonsGroup: BUTTONS_GROUP, value: currentAction, disabled: actionRequestIsInProgress })))));
66
91
  };
67
92
  exports.WorkflowComments = WorkflowComments;
68
- exports.WorkflowComments.propTypes = {
69
- processInstanceComments: prop_types_1.default.arrayOf(prop_types_1.default.shape({
70
- author: prop_types_1.default.string,
71
- id: prop_types_1.default.string,
72
- message: prop_types_1.default.string,
73
- time: prop_types_1.default.number
74
- })),
75
- taskId: prop_types_1.default.string
76
- };
@@ -1,4 +1,4 @@
1
- export const useCommentStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<never>;
2
- export const useCollapsedCommentsStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"circleButton" | "delimiter">;
3
- export const useWorkflowStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"title" | "container" | "commentsContainer" | "filledInputRoot">;
4
- export const useExpandedComments: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"messageContainer">;
1
+ export declare const useCommentStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"text" | "icon" | "date" | "comment" | "info" | "avatar" | "firstLine" | "author">;
2
+ export declare const useCollapsedCommentsStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"circleButton" | "delimiter">;
3
+ export declare const useWorkflowStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"title" | "container" | "commentsContainer" | "filledInputRoot" | "modeSwitcherWrapper">;
4
+ export declare const useExpandedComments: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"messageContainer">;
@@ -27,7 +27,7 @@ exports.useCommentStyles = (0, styles_1.makeStyles)(function (_theme) { return (
27
27
  },
28
28
  author: {
29
29
  flex: 1,
30
- fontWeight: '500',
30
+ fontWeight: 500,
31
31
  color: 'rgba(0,0,0,0.87)',
32
32
  fontSize: '13px',
33
33
  lineHeight: '15px'
@@ -99,6 +99,11 @@ exports.useWorkflowStyles = (0, styles_1.makeStyles)(function (_theme) { return
99
99
  '&.focused': {
100
100
  backgroundColor: 'rgba(0, 0, 0, 0.03)'
101
101
  }
102
+ },
103
+ modeSwitcherWrapper: {
104
+ marginLeft: 'auto',
105
+ marginRight: '16px',
106
+ marginTop: '8px'
102
107
  }
103
108
  }); });
104
109
  exports.useExpandedComments = (0, styles_1.makeStyles)(function (_theme) { return ({
@@ -1,7 +1,7 @@
1
1
  import { WorkflowTaskData } from '@reltio/mdm-sdk';
2
- declare type TaskAction = {
2
+ export declare type TaskAction = {
3
3
  text: string;
4
- onClick: () => void;
4
+ onClick: (comment: string) => void;
5
5
  };
6
6
  declare type Props = Pick<WorkflowTaskData, 'taskId' | 'possibleActions' | 'assignee' | 'isOpen'>;
7
7
  export declare const useWorkflowActions: ({ possibleActions, assignee, taskId, isOpen }: Props) => {
@@ -19,15 +19,17 @@ var useWorkflowActions = function (_a) {
19
19
  var tenant = (0, react_redux_1.useSelector)(mdm_module_1.default.selectors.getTenant);
20
20
  var username = (0, react_redux_1.useSelector)(mdm_module_1.default.selectors.getUserName);
21
21
  var _b = (0, react_1.useState)(false), actionRequestIsInProgress = _b[0], setActionRequestIsInProgress = _b[1];
22
- var performTaskAction = (0, react_1.useCallback)(function (action) { return function () {
22
+ var performTaskAction = (0, react_1.useCallback)(function (action) { return function (comment) {
23
23
  if (workflowPath && taskId) {
24
24
  setActionRequestIsInProgress(true);
25
+ var processInstanceComment = typeof comment === 'string' && comment.length ? comment : undefined;
25
26
  (0, mdm_sdk_1.runTaskAction)({
26
27
  taskId: taskId,
27
28
  workflowPath: workflowPath,
28
29
  environment: environment,
29
30
  tenant: tenant,
30
- action: action
31
+ action: action,
32
+ processInstanceComment: processInstanceComment
31
33
  })
32
34
  .then(function () {
33
35
  onActionSuccess === null || onActionSuccess === void 0 ? void 0 : onActionSuccess(action);
@@ -1,7 +1,9 @@
1
1
  import { WorkflowTaskData } from '@reltio/mdm-sdk';
2
- export declare const useWorkflowComments: ({ processInstanceComments, taskId, isOpen }: WorkflowTaskData) => {
2
+ declare type Props = Pick<WorkflowTaskData, 'processInstanceComments' | 'taskId' | 'isOpen'>;
3
+ export declare const useWorkflowComments: ({ processInstanceComments, taskId, isOpen }: Props) => {
3
4
  comments: any[];
4
5
  requestIsInProgress: boolean;
5
6
  writeComment: (comment: any) => void;
6
7
  readOnly: boolean;
7
8
  };
9
+ export {};
@@ -5,6 +5,7 @@ export { default as AssigneeSelector } from './components/AssigneeSelector/Assig
5
5
  export { default as WorkflowComments } from './components/WorkflowComments';
6
6
  export { useWorkflowAssignee } from './hooks/useWorkflowAssignee';
7
7
  export { useWorkflowComments } from './hooks/useWorkflowComments';
8
+ export { useWorkflowActions } from './hooks/useWorkflowActions';
8
9
  export { useWorkflowCheckPermission } from './hooks/useWorkflowCheckPermission';
9
10
  export { useWorkflowTasks } from './hooks/useWorkflowTasks';
10
11
  export { TaskActionButtons } from './components/TaskActionButtons/TaskActionButtons';
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useWorkflowDefaultActionSuccessHandler = exports.TaskActionButtons = exports.useWorkflowTasks = exports.useWorkflowCheckPermission = exports.useWorkflowComments = exports.useWorkflowAssignee = exports.WorkflowComments = exports.AssigneeSelector = exports.TaskActions = exports.AddWorkflowButton = exports.WorkflowTaskCard = void 0;
6
+ exports.useWorkflowDefaultActionSuccessHandler = exports.TaskActionButtons = exports.useWorkflowTasks = exports.useWorkflowCheckPermission = exports.useWorkflowActions = exports.useWorkflowComments = exports.useWorkflowAssignee = exports.WorkflowComments = exports.AssigneeSelector = exports.TaskActions = exports.AddWorkflowButton = exports.WorkflowTaskCard = void 0;
7
7
  var WorkflowTaskCard_1 = require("./cards/WorkflowTaskCard");
8
8
  Object.defineProperty(exports, "WorkflowTaskCard", { enumerable: true, get: function () { return WorkflowTaskCard_1.WorkflowTaskCard; } });
9
9
  var AddWorkflowButton_1 = require("./components/AddWorkflowButton/AddWorkflowButton");
@@ -18,6 +18,8 @@ var useWorkflowAssignee_1 = require("./hooks/useWorkflowAssignee");
18
18
  Object.defineProperty(exports, "useWorkflowAssignee", { enumerable: true, get: function () { return useWorkflowAssignee_1.useWorkflowAssignee; } });
19
19
  var useWorkflowComments_1 = require("./hooks/useWorkflowComments");
20
20
  Object.defineProperty(exports, "useWorkflowComments", { enumerable: true, get: function () { return useWorkflowComments_1.useWorkflowComments; } });
21
+ var useWorkflowActions_1 = require("./hooks/useWorkflowActions");
22
+ Object.defineProperty(exports, "useWorkflowActions", { enumerable: true, get: function () { return useWorkflowActions_1.useWorkflowActions; } });
21
23
  var useWorkflowCheckPermission_1 = require("./hooks/useWorkflowCheckPermission");
22
24
  Object.defineProperty(exports, "useWorkflowCheckPermission", { enumerable: true, get: function () { return useWorkflowCheckPermission_1.useWorkflowCheckPermission; } });
23
25
  var useWorkflowTasks_1 = require("./hooks/useWorkflowTasks");
@@ -37,6 +37,6 @@ var CollapseButton = function (_a) {
37
37
  var tooltipProps = {
38
38
  tooltipTitle: tooltipTitle
39
39
  };
40
- return React.createElement(SmallIconButtonWithTooltip, __assign({}, buttonProps, tooltipProps, otherProps));
40
+ return (React.createElement(SmallIconButtonWithTooltip, __assign({ "data-reltio-id": "collapse-button" }, buttonProps, tooltipProps, otherProps)));
41
41
  };
42
42
  export default CollapseButton;
@@ -2,15 +2,15 @@ import React from 'react';
2
2
  declare type Option = {
3
3
  label: string;
4
4
  value: string;
5
- description: string;
6
- icon: React.ElementType;
5
+ description?: string;
6
+ icon?: React.ElementType;
7
7
  };
8
8
  declare type Button = Option & {
9
9
  onClick: (value: string) => void;
10
10
  };
11
11
  declare type ModeSwitcherSelectProps = {
12
- optionsGroup: Option[];
13
- buttonsGroup: Button[];
12
+ optionsGroup?: Option[];
13
+ buttonsGroup?: Button[];
14
14
  value: string;
15
15
  onChange?: (value: string) => void;
16
16
  disabled?: boolean;
@@ -29,7 +29,7 @@ import Tooltip from '@material-ui/core/Tooltip';
29
29
  import { useStyles } from './styles';
30
30
  var isButton = function (value) { return 'onClick' in value; };
31
31
  export var ModeSwitcherSelect = function (_a) {
32
- var optionsGroup = _a.optionsGroup, buttonsGroup = _a.buttonsGroup, value = _a.value, onChange = _a.onChange, _b = _a.disabled, disabled = _b === void 0 ? false : _b;
32
+ var _b = _a.optionsGroup, optionsGroup = _b === void 0 ? [] : _b, _c = _a.buttonsGroup, buttonsGroup = _c === void 0 ? [] : _c, value = _a.value, onChange = _a.onChange, _d = _a.disabled, disabled = _d === void 0 ? false : _d;
33
33
  var styles = useStyles();
34
34
  var handleChange = function (e) {
35
35
  var value = e.target.value;
@@ -54,7 +54,7 @@ export var ModeSwitcherSelect = function (_a) {
54
54
  }
55
55
  return (React.createElement(MenuItem, __assign({ key: value }, menuItemProps, { "data-reltio-id": "reltio-profile-select-mode-".concat(value) }),
56
56
  React.createElement(Box, { className: styles.menuItemInner },
57
- React.createElement(IconComponent, { className: styles.menuItemIcon }),
57
+ IconComponent && React.createElement(IconComponent, { className: styles.menuItemIcon }),
58
58
  React.createElement(Box, null,
59
59
  React.createElement(Typography, { className: styles.menuItemLabel }, label),
60
60
  React.createElement(Typography, { className: styles.menuItemDescription }, description)))));
@@ -15,16 +15,23 @@ import LineDecorator from '../../components/LineDecorator/LineDecorator';
15
15
  import { useWorkflowColor } from '../../hooks/useWorkflowColor';
16
16
  import { useWorkflowCheckPermission } from '../../hooks/useWorkflowCheckPermission';
17
17
  import CollaborationIcon from '../../../../icons/CollaborationIcon';
18
+ import { useWorkflowActions } from '../../hooks/useWorkflowActions';
18
19
  var GenericWorkflowTaskCard = function (_a) {
19
20
  var _b;
20
21
  var task = _a.task, children = _a.children, actions = _a.actions, Icon = _a.Icon;
21
- var taskId = task.taskId, dueDate = task.dueDate, priority = task.priority, assignee = task.assignee, createdBy = task.createdBy, createTime = task.createTime, step = task.displayName, processDefinitionDisplayName = task.processDefinitionDisplayName, objectURIs = task.objectURIs, processInstanceComments = task.processInstanceComments, possibleActions = task.possibleActions, isTaskOpen = task.isOpen;
22
+ var taskId = task.taskId, dueDate = task.dueDate, priority = task.priority, assignee = task.assignee, createdBy = task.createdBy, createTime = task.createTime, step = task.displayName, processDefinitionDisplayName = task.processDefinitionDisplayName, objectURIs = task.objectURIs, processInstanceComments = task.processInstanceComments, possibleActions = task.possibleActions, isTaskOpen = task.isOpen, preferredAction = task.preferredAction;
22
23
  var dcrId = getDCRId(objectURIs);
23
24
  var color = useWorkflowColor({ processDefinitionDisplayName: processDefinitionDisplayName });
24
25
  var styles = useStyles({ color: color });
25
26
  var _c = useState(false), isExpanded = _c[0], setExpanded = _c[1];
26
27
  var checkWorkflowPermission = useWorkflowCheckPermission();
27
28
  var canViewComments = checkWorkflowPermission('VIEW_PROCESS_INSTANCE_COMMENTS');
29
+ var _d = useWorkflowActions({
30
+ taskId: taskId,
31
+ possibleActions: possibleActions,
32
+ assignee: assignee,
33
+ isOpen: isTaskOpen
34
+ }), workflowActions = _d.actions, actionRequestIsInProgress = _d.actionRequestIsInProgress;
28
35
  return (React.createElement("div", { className: styles.card },
29
36
  React.createElement("div", { className: classnames((_b = {}, _b[styles.withBackground] = isExpanded, _b)) },
30
37
  React.createElement("div", { className: styles.lineWrapper },
@@ -40,7 +47,7 @@ var GenericWorkflowTaskCard = function (_a) {
40
47
  React.createElement(CollapseButton, { isOpen: isExpanded, size: "L", onClick: function () {
41
48
  setExpanded(!isExpanded);
42
49
  } })),
43
- React.createElement("div", { className: styles.infoBlock },
50
+ React.createElement("div", { className: styles.infoBlock, "data-reltio-id": "info-block" },
44
51
  React.createElement("div", { className: styles.flex },
45
52
  dcrId && (React.createElement("div", { className: styles.info },
46
53
  i18n.text('DCR ID'),
@@ -61,7 +68,7 @@ var GenericWorkflowTaskCard = function (_a) {
61
68
  canViewComments && (processInstanceComments === null || processInstanceComments === void 0 ? void 0 : processInstanceComments.length) > 0 && (React.createElement("div", { className: styles.commentsInfo },
62
69
  React.createElement(CollaborationIcon, { className: styles.commentsIcon }),
63
70
  React.createElement("div", { className: styles.infoValue }, processInstanceComments.length)))),
64
- actions || (React.createElement(TaskActions, { taskId: taskId, possibleActions: possibleActions, assignee: assignee, isTaskOpen: isTaskOpen })))))),
71
+ actions || (React.createElement(TaskActions, { actions: workflowActions, isInProgress: actionRequestIsInProgress })))))),
65
72
  isExpanded && (React.createElement(LineDecorator, { plain: true },
66
73
  React.createElement("div", { className: styles.controlsBox },
67
74
  React.createElement("div", { className: styles.controlsInRow },
@@ -71,6 +78,6 @@ var GenericWorkflowTaskCard = function (_a) {
71
78
  isExpanded && (React.createElement(React.Fragment, null,
72
79
  children,
73
80
  canViewComments && (React.createElement("div", { className: styles.comments },
74
- React.createElement(WorkflowComments, { taskId: taskId, processInstanceComments: processInstanceComments, isTaskOpen: isTaskOpen })))))));
81
+ React.createElement(WorkflowComments, { workflowActions: workflowActions, actionRequestIsInProgress: actionRequestIsInProgress, preferredAction: preferredAction, taskId: taskId, processInstanceComments: processInstanceComments, isTaskOpen: isTaskOpen })))))));
75
82
  };
76
83
  export default GenericWorkflowTaskCard;
@@ -1,7 +1,8 @@
1
1
  /// <reference types="react" />
2
- import { WorkflowTaskData } from '@reltio/mdm-sdk';
3
- declare type Props = Pick<WorkflowTaskData, 'taskId' | 'possibleActions' | 'assignee'> & {
4
- isTaskOpen?: WorkflowTaskData['isOpen'];
2
+ import { TaskAction } from '../../hooks/useWorkflowActions';
3
+ declare type Props = {
4
+ isInProgress?: boolean;
5
+ actions: TaskAction[];
5
6
  };
6
- declare const TaskActions: ({ taskId, possibleActions, assignee, isTaskOpen }: Props) => JSX.Element;
7
+ declare const TaskActions: ({ actions, isInProgress: disabled }: Props) => JSX.Element;
7
8
  export default TaskActions;
@@ -1,20 +1,14 @@
1
1
  import React from 'react';
2
2
  import MoreVertIcon from '@material-ui/icons/MoreVert';
3
- import { useWorkflowActions } from '../../hooks/useWorkflowActions';
4
3
  import DropDownMenuButton from '../../../DropDownMenuButton/DropDownMenuButton';
5
4
  import SmallIconButton from '../../../SmallIconButton/SmallIconButton';
6
5
  var TaskActions = function (_a) {
7
- var taskId = _a.taskId, possibleActions = _a.possibleActions, assignee = _a.assignee, isTaskOpen = _a.isTaskOpen;
8
- var _b = useWorkflowActions({
9
- taskId: taskId,
10
- possibleActions: possibleActions,
11
- assignee: assignee,
12
- isOpen: isTaskOpen
13
- }), actions = _b.actions, disabled = _b.actionRequestIsInProgress;
6
+ var actions = _a.actions, disabled = _a.isInProgress;
14
7
  return actions.length > 0 ? (React.createElement(DropDownMenuButton, { buttonComponent: SmallIconButton, buttonProps: {
15
8
  icon: MoreVertIcon,
16
9
  size: 'L',
17
- disabled: disabled
10
+ disabled: disabled,
11
+ 'data-reltio-id': 'task-actions'
18
12
  }, menuId: 'workflow-actions', menuItems: actions })) : null;
19
13
  };
20
14
  export default TaskActions;
@@ -1,17 +1,13 @@
1
- export function WorkflowComments({ processInstanceComments, taskId, isTaskOpen }: {
2
- processInstanceComments: any;
3
- taskId: any;
4
- isTaskOpen: any;
5
- }): JSX.Element;
6
- export namespace WorkflowComments {
7
- namespace propTypes {
8
- const processInstanceComments: PropTypes.Requireable<PropTypes.InferProps<{
9
- author: PropTypes.Requireable<string>;
10
- id: PropTypes.Requireable<string>;
11
- message: PropTypes.Requireable<string>;
12
- time: PropTypes.Requireable<number>;
13
- }>[]>;
14
- const taskId: PropTypes.Requireable<string>;
15
- }
16
- }
17
- import PropTypes from "prop-types";
1
+ /// <reference types="react" />
2
+ import { WorkflowAction, WorkflowComment } from '@reltio/mdm-sdk';
3
+ import { TaskAction } from '../../hooks/useWorkflowActions';
4
+ declare type Props = {
5
+ actionRequestIsInProgress?: boolean;
6
+ workflowActions: TaskAction[];
7
+ processInstanceComments: WorkflowComment[];
8
+ taskId: string;
9
+ isTaskOpen: boolean;
10
+ preferredAction: WorkflowAction;
11
+ };
12
+ export declare const WorkflowComments: ({ workflowActions: actions, actionRequestIsInProgress, processInstanceComments, taskId, isTaskOpen, preferredAction }: Props) => JSX.Element;
13
+ export {};
@@ -1,31 +1,53 @@
1
- import React, { useCallback, useState } from 'react';
2
- import { pipe, propEq, when } from 'ramda';
1
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
+ if (ar || !(i in from)) {
4
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
+ ar[i] = from[i];
6
+ }
7
+ }
8
+ return to.concat(ar || Array.prototype.slice.call(from));
9
+ };
10
+ import React, { useCallback, useState, useMemo } from 'react';
11
+ import { pipe, propEq, when, both, always } from 'ramda';
3
12
  import Input from '@material-ui/core/Input';
4
13
  import InputAdornment from '@material-ui/core/InputAdornment';
5
14
  import SendIcon from '@material-ui/icons/Send';
6
- import PropTypes from 'prop-types';
7
15
  import i18n from 'ui-i18n';
16
+ import Button from '@material-ui/core/Button';
8
17
  import { CollapsedComments } from './CollapsedComments';
9
18
  import { ExpandedComments } from './ExpandedComments';
10
19
  import { useWorkflowStyles } from './styles';
11
20
  import { useWorkflowComments } from '../../hooks/useWorkflowComments';
12
21
  import { SmallIconButton } from '../../../SmallIconButton';
22
+ import { ModeSwitcherSelect } from '../../../ModeSwitcherSelect/ModeSwitcherSelect';
13
23
  var getValue = function (e) { return e.target.value; };
14
24
  export var WorkflowComments = function (_a) {
15
- var processInstanceComments = _a.processInstanceComments, taskId = _a.taskId, isTaskOpen = _a.isTaskOpen;
25
+ var actions = _a.workflowActions, actionRequestIsInProgress = _a.actionRequestIsInProgress, processInstanceComments = _a.processInstanceComments, taskId = _a.taskId, isTaskOpen = _a.isTaskOpen, preferredAction = _a.preferredAction;
16
26
  var styles = useWorkflowStyles();
17
27
  var _b = useState(false), expanded = _b[0], setExpanded = _b[1];
18
28
  var _c = useState(''), comment = _c[0], setComment = _c[1];
19
- var _d = useWorkflowComments({
29
+ var _d = useState(preferredAction.label), currentAction = _d[0], setCurrentAction = _d[1];
30
+ var _e = useWorkflowComments({
20
31
  processInstanceComments: processInstanceComments,
21
32
  taskId: taskId,
22
33
  isOpen: isTaskOpen
23
- }), comments = _d.comments, writeComment = _d.writeComment, readOnly = _d.readOnly;
34
+ }), comments = _e.comments, writeComment = _e.writeComment, readOnly = _e.readOnly;
24
35
  var sendComment = useCallback(function () {
25
36
  writeComment(comment);
26
37
  setComment('');
27
38
  }, [comment, writeComment]);
28
39
  var onChange = pipe(getValue, setComment);
40
+ var BUTTONS_GROUP = useMemo(function () { return __spreadArray([], actions.map(function (_a) {
41
+ var text = _a.text, onClick = _a.onClick;
42
+ return ({
43
+ label: text,
44
+ onClick: function () {
45
+ setCurrentAction(text);
46
+ onClick(comment);
47
+ },
48
+ value: text
49
+ });
50
+ }), true); }, [actions, comment]);
29
51
  return (React.createElement("div", { className: styles.container },
30
52
  React.createElement("div", { className: styles.title },
31
53
  " ",
@@ -33,14 +55,8 @@ export var WorkflowComments = function (_a) {
33
55
  " "),
34
56
  React.createElement("div", { className: styles.commentsContainer }, expanded || comments.length < 3 ? (React.createElement(ExpandedComments, { comments: comments })) : (React.createElement(CollapsedComments, { onClick: function () { return setExpanded(true); }, comments: comments }))),
35
57
  !readOnly && (React.createElement(Input, { endAdornment: React.createElement(InputAdornment, { position: "end" },
36
- React.createElement(SmallIconButton, { icon: SendIcon, disabled: comment.length === 0, onClick: sendComment })), classes: { root: styles.filledInputRoot }, placeholder: i18n.text('Write a comment'), value: comment, onKeyPress: when(propEq('key', 'Enter'), sendComment), onChange: onChange, disableUnderline: true }))));
37
- };
38
- WorkflowComments.propTypes = {
39
- processInstanceComments: PropTypes.arrayOf(PropTypes.shape({
40
- author: PropTypes.string,
41
- id: PropTypes.string,
42
- message: PropTypes.string,
43
- time: PropTypes.number
44
- })),
45
- taskId: PropTypes.string
58
+ React.createElement(SmallIconButton, { icon: SendIcon, disabled: comment.length === 0, onClick: sendComment, "data-reltio-id": "send-button" })), classes: { root: styles.filledInputRoot }, placeholder: i18n.text('Write a comment'), value: comment, onKeyPress: when(both(propEq('key', 'Enter'), always(comment.length > 0)), sendComment), onChange: onChange, disableUnderline: true })),
59
+ React.createElement("div", { className: styles.modeSwitcherWrapper },
60
+ BUTTONS_GROUP.length === 1 && (React.createElement(Button, { variant: "outlined", onClick: BUTTONS_GROUP[0].onClick, disabled: actionRequestIsInProgress }, BUTTONS_GROUP[0].label)),
61
+ BUTTONS_GROUP.length > 1 && (React.createElement(ModeSwitcherSelect, { buttonsGroup: BUTTONS_GROUP, value: currentAction, disabled: actionRequestIsInProgress })))));
46
62
  };
@@ -1,4 +1,4 @@
1
- export const useCommentStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<never>;
2
- export const useCollapsedCommentsStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"circleButton" | "delimiter">;
3
- export const useWorkflowStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"title" | "container" | "commentsContainer" | "filledInputRoot">;
4
- export const useExpandedComments: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"messageContainer">;
1
+ export declare const useCommentStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"text" | "icon" | "date" | "comment" | "info" | "avatar" | "firstLine" | "author">;
2
+ export declare const useCollapsedCommentsStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"circleButton" | "delimiter">;
3
+ export declare const useWorkflowStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"title" | "container" | "commentsContainer" | "filledInputRoot" | "modeSwitcherWrapper">;
4
+ export declare const useExpandedComments: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"messageContainer">;
@@ -24,7 +24,7 @@ export var useCommentStyles = makeStyles(function (_theme) { return ({
24
24
  },
25
25
  author: {
26
26
  flex: 1,
27
- fontWeight: '500',
27
+ fontWeight: 500,
28
28
  color: 'rgba(0,0,0,0.87)',
29
29
  fontSize: '13px',
30
30
  lineHeight: '15px'
@@ -96,6 +96,11 @@ export var useWorkflowStyles = makeStyles(function (_theme) { return ({
96
96
  '&.focused': {
97
97
  backgroundColor: 'rgba(0, 0, 0, 0.03)'
98
98
  }
99
+ },
100
+ modeSwitcherWrapper: {
101
+ marginLeft: 'auto',
102
+ marginRight: '16px',
103
+ marginTop: '8px'
99
104
  }
100
105
  }); });
101
106
  export var useExpandedComments = makeStyles(function (_theme) { return ({
@@ -1,7 +1,7 @@
1
1
  import { WorkflowTaskData } from '@reltio/mdm-sdk';
2
- declare type TaskAction = {
2
+ export declare type TaskAction = {
3
3
  text: string;
4
- onClick: () => void;
4
+ onClick: (comment: string) => void;
5
5
  };
6
6
  declare type Props = Pick<WorkflowTaskData, 'taskId' | 'possibleActions' | 'assignee' | 'isOpen'>;
7
7
  export declare const useWorkflowActions: ({ possibleActions, assignee, taskId, isOpen }: Props) => {
@@ -13,15 +13,17 @@ export var useWorkflowActions = function (_a) {
13
13
  var tenant = useSelector(mdmModule.selectors.getTenant);
14
14
  var username = useSelector(mdmModule.selectors.getUserName);
15
15
  var _b = useState(false), actionRequestIsInProgress = _b[0], setActionRequestIsInProgress = _b[1];
16
- var performTaskAction = useCallback(function (action) { return function () {
16
+ var performTaskAction = useCallback(function (action) { return function (comment) {
17
17
  if (workflowPath && taskId) {
18
18
  setActionRequestIsInProgress(true);
19
+ var processInstanceComment = typeof comment === 'string' && comment.length ? comment : undefined;
19
20
  runTaskAction({
20
21
  taskId: taskId,
21
22
  workflowPath: workflowPath,
22
23
  environment: environment,
23
24
  tenant: tenant,
24
- action: action
25
+ action: action,
26
+ processInstanceComment: processInstanceComment
25
27
  })
26
28
  .then(function () {
27
29
  onActionSuccess === null || onActionSuccess === void 0 ? void 0 : onActionSuccess(action);
@@ -1,7 +1,9 @@
1
1
  import { WorkflowTaskData } from '@reltio/mdm-sdk';
2
- export declare const useWorkflowComments: ({ processInstanceComments, taskId, isOpen }: WorkflowTaskData) => {
2
+ declare type Props = Pick<WorkflowTaskData, 'processInstanceComments' | 'taskId' | 'isOpen'>;
3
+ export declare const useWorkflowComments: ({ processInstanceComments, taskId, isOpen }: Props) => {
3
4
  comments: any[];
4
5
  requestIsInProgress: boolean;
5
6
  writeComment: (comment: any) => void;
6
7
  readOnly: boolean;
7
8
  };
9
+ export {};
@@ -5,6 +5,7 @@ export { default as AssigneeSelector } from './components/AssigneeSelector/Assig
5
5
  export { default as WorkflowComments } from './components/WorkflowComments';
6
6
  export { useWorkflowAssignee } from './hooks/useWorkflowAssignee';
7
7
  export { useWorkflowComments } from './hooks/useWorkflowComments';
8
+ export { useWorkflowActions } from './hooks/useWorkflowActions';
8
9
  export { useWorkflowCheckPermission } from './hooks/useWorkflowCheckPermission';
9
10
  export { useWorkflowTasks } from './hooks/useWorkflowTasks';
10
11
  export { TaskActionButtons } from './components/TaskActionButtons/TaskActionButtons';
@@ -5,6 +5,7 @@ export { default as AssigneeSelector } from './components/AssigneeSelector/Assig
5
5
  export { default as WorkflowComments } from './components/WorkflowComments';
6
6
  export { useWorkflowAssignee } from './hooks/useWorkflowAssignee';
7
7
  export { useWorkflowComments } from './hooks/useWorkflowComments';
8
+ export { useWorkflowActions } from './hooks/useWorkflowActions';
8
9
  export { useWorkflowCheckPermission } from './hooks/useWorkflowCheckPermission';
9
10
  export { useWorkflowTasks } from './hooks/useWorkflowTasks';
10
11
  export { TaskActionButtons } from './components/TaskActionButtons/TaskActionButtons';
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.1528",
3
+ "version": "1.4.1530",
4
4
  "license": "SEE LICENSE IN LICENSE FILE",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
7
7
  "dependencies": {
8
8
  "@date-io/moment": "^1.3.5",
9
9
  "@react-google-maps/api": "2.7.0",
10
- "@reltio/mdm-module": "^1.4.1528",
11
- "@reltio/mdm-sdk": "^1.4.1528",
10
+ "@reltio/mdm-module": "^1.4.1530",
11
+ "@reltio/mdm-sdk": "^1.4.1530",
12
12
  "classnames": "^2.2.5",
13
13
  "d3-cloud": "^1.2.5",
14
14
  "d3-geo": "^2.0.1",