UNPKG

@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
/* 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()); };