@atlaskit/rovo-agent-components
Version:
This package host public components related to rovo agents, the components here are needed for other public atlaskit packages
247 lines (245 loc) • 13 kB
JavaScript
/* index.tsx generated by @compiled/babel-plugin v0.39.1 */
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ChatToAgentButton = exports.AgentDropdownMenu = void 0;
require("./index.compiled.css");
var _runtime = require("@compiled/react/runtime");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = _interopRequireWildcard(require("react"));
var _reactIntl = require("react-intl");
var _new = _interopRequireWildcard(require("@atlaskit/button/new"));
var _dropdownMenu = _interopRequireWildcard(require("@atlaskit/dropdown-menu"));
var _showMoreHorizontal = _interopRequireDefault(require("@atlaskit/icon/core/show-more-horizontal"));
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
var _compiled = require("@atlaskit/primitives/compiled");
var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
var _chatIcon = require("../../common/ui/chat-icon");
var _agentVerificationDropdownItem = require("../agent-verification-dropdown-item");
var _messages = _interopRequireDefault(require("./messages"));
var _excluded = ["triggerRef"];
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
var styles = {
chatToAgentButtonContainer: "_1bsb1osq",
chatToAgentButtonWrapper: "_1e0c1txw _1bah1h6o _k48p1wq8",
chatPillButtonInline: "_18zrv77o",
chatPillText: "_1nmz1hna _y3gn1e5h _o5721jtm",
chatPillIconWrapper: "_1ul9gktf _4t3igktf"
};
var ChatToAgentButton = exports.ChatToAgentButton = function ChatToAgentButton(_ref) {
var onClick = _ref.onClick;
var _useIntl = (0, _reactIntl.useIntl)(),
formatMessage = _useIntl.formatMessage;
return /*#__PURE__*/_react.default.createElement(_compiled.Box, {
xcss: styles.chatToAgentButtonContainer
}, /*#__PURE__*/_react.default.createElement(_new.default, {
testId: "view-agent-modal-chat-to-agent-button",
shouldFitContainer: true,
onClick: onClick
}, /*#__PURE__*/_react.default.createElement(_compiled.Box, {
xcss: styles.chatToAgentButtonWrapper
}, /*#__PURE__*/_react.default.createElement(_compiled.Inline, {
space: "space.050",
xcss: styles.chatPillButtonInline
}, /*#__PURE__*/_react.default.createElement(_compiled.Box, {
xcss: styles.chatPillIconWrapper
}, /*#__PURE__*/_react.default.createElement(_chatIcon.ChatPillIcon, null)), /*#__PURE__*/_react.default.createElement(_compiled.Box, {
xcss: styles.chatPillText
}, formatMessage(_messages.default.chatToAgentButton))))));
};
var AgentDropdownMenu = exports.AgentDropdownMenu = function AgentDropdownMenu(_ref2) {
var isAutodevTemplateAgent = _ref2.isAutodevTemplateAgent,
onEditAgent = _ref2.onEditAgent,
onCopyAgent = _ref2.onCopyAgent,
onDuplicateAgent = _ref2.onDuplicateAgent,
onDeleteAgent = _ref2.onDeleteAgent,
onViewAgentFullProfileClick = _ref2.onViewAgentFullProfileClick,
_onOpenChange = _ref2.onOpenChange,
isForgeAgent = _ref2.isForgeAgent,
_ref2$showViewAgentOp = _ref2.showViewAgentOption,
showViewAgentOption = _ref2$showViewAgentOp === void 0 ? false : _ref2$showViewAgentOp,
onViewAgentClick = _ref2.onViewAgentClick,
onDropdownTriggerClick = _ref2.onDropdownTriggerClick,
spacing = _ref2.spacing,
appearance = _ref2.appearance,
dropdownMenuTestId = _ref2.dropdownMenuTestId,
doesAgentHaveIdentityAccountId = _ref2.doesAgentHaveIdentityAccountId,
loadAgentPermissions = _ref2.loadAgentPermissions,
loadPermissionsOnMount = _ref2.loadPermissionsOnMount,
shouldTriggerStopPropagation = _ref2.shouldTriggerStopPropagation,
agentName = _ref2.agentName,
agentRef = _ref2.agentRef,
userPermissionsRef = _ref2.userPermissionsRef,
onVerificationSuccess = _ref2.onVerificationSuccess,
customDropdownOptions = _ref2.customDropdownOptions;
var _useState = (0, _react.useState)(false),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
isLoading = _useState2[0],
setIsLoading = _useState2[1];
var _useState3 = (0, _react.useState)(false),
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
isDuplicating = _useState4[0],
setIsDuplicating = _useState4[1];
var _useIntl2 = (0, _reactIntl.useIntl)(),
formatMessage = _useIntl2.formatMessage;
var _useState5 = (0, _react.useState)(false),
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
hasBeenCopied = _useState6[0],
setHasBeenCopied = _useState6[1];
var _useState7 = (0, _react.useState)(false),
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
isOpen = _useState8[0],
setIsOpen = _useState8[1];
var _useState9 = (0, _react.useState)(),
_useState0 = (0, _slicedToArray2.default)(_useState9, 2),
permissions = _useState0[0],
setPermissions = _useState0[1];
(0, _react.useEffect)(function () {
var fetchData = /*#__PURE__*/function () {
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
var _yield$loadAgentPermi, isCreateEnabled, isEditEnabled, isDeleteEnabled;
return _regenerator.default.wrap(function (_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
setIsLoading(true);
_context.next = 1;
return loadAgentPermissions();
case 1:
_yield$loadAgentPermi = _context.sent;
isCreateEnabled = _yield$loadAgentPermi.isCreateEnabled;
isEditEnabled = _yield$loadAgentPermi.isEditEnabled;
isDeleteEnabled = _yield$loadAgentPermi.isDeleteEnabled;
setIsLoading(false);
setPermissions({
isCreateEnabled: isCreateEnabled,
isEditEnabled: isEditEnabled,
isDeleteEnabled: isDeleteEnabled
});
case 2:
case "end":
return _context.stop();
}
}, _callee);
}));
return function fetchData() {
return _ref3.apply(this, arguments);
};
}();
// Only load once
if (!permissions && (isOpen || loadPermissionsOnMount)) {
fetchData();
}
}, [isOpen, loadAgentPermissions, loadPermissionsOnMount, permissions]);
(0, _react.useEffect)(function () {
if (!isOpen) {
setHasBeenCopied(false);
}
}, [isOpen]);
var renderEditDelete = function renderEditDelete() {
if (!(permissions !== null && permissions !== void 0 && permissions.isEditEnabled) && !(permissions !== null && permissions !== void 0 && permissions.isDeleteEnabled)) {
return null;
}
return /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItemGroup, {
hasSeparator: true
}, permissions.isEditEnabled && /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItem, {
onClick: onEditAgent
}, formatMessage(_messages.default.editAgent)), permissions.isDeleteEnabled && /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItem, {
onClick: onDeleteAgent
}, formatMessage(_messages.default.deleteAgent)));
};
var isCreateAgentsEnabled = permissions === null || permissions === void 0 ? void 0 : permissions.isCreateEnabled;
return /*#__PURE__*/_react.default.createElement(_dropdownMenu.default, {
isLoading: isLoading,
isOpen: isOpen,
testId: dropdownMenuTestId,
trigger: function trigger(_ref4) {
var triggerRef = _ref4.triggerRef,
props = (0, _objectWithoutProperties2.default)(_ref4, _excluded);
return /*#__PURE__*/_react.default.createElement(_new.IconButton, (0, _extends2.default)({}, props, {
icon: _showMoreHorizontal.default,
label: agentName ? formatMessage(_messages.default.moreActionsForLabel, {
agentName: agentName
}) : formatMessage(_messages.default.moreActionsLabel),
ref: triggerRef,
spacing: spacing,
appearance: appearance,
onClick: function onClick(e, analyticsEvent) {
var _props$onClick;
if (onDropdownTriggerClick) {
onDropdownTriggerClick(e, analyticsEvent);
}
if (shouldTriggerStopPropagation) {
e.stopPropagation();
}
(_props$onClick = props.onClick) === null || _props$onClick === void 0 || _props$onClick.call(props, e);
}
}));
},
onOpenChange: function onOpenChange(args) {
setIsOpen(args.isOpen);
_onOpenChange === null || _onOpenChange === void 0 || _onOpenChange(args);
if (!args.isOpen) {
setHasBeenCopied(false);
}
}
}, /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItemGroup, null, (0, _platformFeatureFlags.fg)('jira_browse_agents_modal') && (customDropdownOptions === null || customDropdownOptions === void 0 ? void 0 : customDropdownOptions.map(function (option) {
return /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItem, {
key: option.id,
onClick: option.onClick
}, option.label);
})), showViewAgentOption && /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItem, {
onClick: onViewAgentClick
}, formatMessage(_messages.default.viewAgent)), doesAgentHaveIdentityAccountId && onViewAgentFullProfileClick && /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItem, {
onClick: onViewAgentFullProfileClick
}, formatMessage(_messages.default.viewAgentFullProfile)), !isForgeAgent && isCreateAgentsEnabled && /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItem, {
onClick: ( /*#__PURE__*/function () {
var _ref5 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(e) {
return _regenerator.default.wrap(function (_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
if ((0, _platformFeatureFlags.fg)('rovo_agent_versioning_enabled')) {
e.stopPropagation();
}
setIsDuplicating(true);
_context2.prev = 1;
_context2.next = 2;
return onDuplicateAgent === null || onDuplicateAgent === void 0 ? void 0 : onDuplicateAgent(e);
case 2:
_context2.prev = 2;
setIsDuplicating(false);
return _context2.finish(2);
case 3:
case "end":
return _context2.stop();
}
}, _callee2, null, [[1,, 2, 3]]);
}));
return function (_x) {
return _ref5.apply(this, arguments);
};
}()),
isDisabled: isDuplicating
}, /*#__PURE__*/_react.default.createElement(_compiled.Inline, {
space: "space.050"
}, isDuplicating && /*#__PURE__*/_react.default.createElement(_spinner.default, {
size: "small"
}), isAutodevTemplateAgent ? formatMessage(_messages.default.useTemplateButton) : formatMessage(_messages.default.duplicateAgent))), /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItem, {
onClick: function onClick(e) {
e.stopPropagation();
setHasBeenCopied(true);
onCopyAgent === null || onCopyAgent === void 0 || onCopyAgent(e);
}
}, formatMessage(hasBeenCopied ? _messages.default.linkedCopiedToProfile : _messages.default.copyLinkToProfile)), agentRef && userPermissionsRef && (0, _platformFeatureFlags.fg)('rovo_agents_agent_verification') && /*#__PURE__*/_react.default.createElement(_agentVerificationDropdownItem.AgentVerificationDropdownItem, {
agentRef: agentRef !== null && agentRef !== void 0 ? agentRef : null,
userPermissionsRef: userPermissionsRef !== null && userPermissionsRef !== void 0 ? userPermissionsRef : null,
onVerificationSuccess: onVerificationSuccess,
testId: "agent-actions-menu-verification"
})), renderEditDelete());
};