@atlaskit/profilecard 19.17.6 → 19.18.0
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.
- package/CHANGELOG.md +20 -0
- package/dist/cjs/client/RovoAgentCardClient.js +6 -3
- package/dist/cjs/client/getAgentInfo.js +7 -18
- package/dist/cjs/client/getTeamFromAGG.js +1 -1
- package/dist/cjs/components/Agent/Actions.js +175 -0
- package/dist/cjs/components/Agent/AgentProfileCard.js +65 -7
- package/dist/cjs/components/Agent/AgentProfileCardResourced.js +10 -4
- package/dist/cjs/components/Agent/AgentProfileCardTrigger.js +27 -13
- package/dist/cjs/components/Agent/AgentProfileCardWrapper.js +1 -2
- package/dist/cjs/components/Agent/ConversationStarters.js +26 -0
- package/dist/cjs/components/Agent/useAgentActions.js +39 -0
- package/dist/cjs/components/Agent/useSetFavouriteAgent.js +85 -0
- package/dist/cjs/components/User/ProfileCardTrigger.js +3 -1
- package/dist/cjs/index.js +21 -0
- package/dist/cjs/util/analytics.js +1 -1
- package/dist/cjs/util/rovoAgentUtils.js +24 -0
- package/dist/cjs/util/url.js +20 -0
- package/dist/es2019/client/RovoAgentCardClient.js +6 -3
- package/dist/es2019/client/getAgentInfo.js +5 -15
- package/dist/es2019/client/getTeamFromAGG.js +1 -1
- package/dist/es2019/components/Agent/Actions.js +168 -0
- package/dist/es2019/components/Agent/AgentProfileCard.js +59 -8
- package/dist/es2019/components/Agent/AgentProfileCardResourced.js +9 -5
- package/dist/es2019/components/Agent/AgentProfileCardTrigger.js +17 -6
- package/dist/es2019/components/Agent/AgentProfileCardWrapper.js +1 -2
- package/dist/es2019/components/Agent/ConversationStarters.js +20 -0
- package/dist/es2019/components/Agent/useAgentActions.js +34 -0
- package/dist/es2019/components/Agent/useSetFavouriteAgent.js +45 -0
- package/dist/es2019/components/User/ProfileCardTrigger.js +3 -1
- package/dist/es2019/index.js +4 -0
- package/dist/es2019/util/analytics.js +1 -1
- package/dist/es2019/util/rovoAgentUtils.js +16 -0
- package/dist/es2019/util/url.js +9 -0
- package/dist/esm/client/RovoAgentCardClient.js +6 -3
- package/dist/esm/client/getAgentInfo.js +7 -18
- package/dist/esm/client/getTeamFromAGG.js +1 -1
- package/dist/esm/components/Agent/Actions.js +165 -0
- package/dist/esm/components/Agent/AgentProfileCard.js +66 -8
- package/dist/esm/components/Agent/AgentProfileCardResourced.js +11 -5
- package/dist/esm/components/Agent/AgentProfileCardTrigger.js +24 -13
- package/dist/esm/components/Agent/AgentProfileCardWrapper.js +1 -2
- package/dist/esm/components/Agent/ConversationStarters.js +19 -0
- package/dist/esm/components/Agent/useAgentActions.js +33 -0
- package/dist/esm/components/Agent/useSetFavouriteAgent.js +78 -0
- package/dist/esm/components/User/ProfileCardTrigger.js +3 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/util/analytics.js +1 -1
- package/dist/esm/util/rovoAgentUtils.js +17 -0
- package/dist/esm/util/url.js +13 -0
- package/dist/types/client/RovoAgentCardClient.d.ts +1 -1
- package/dist/types/client/getAgentInfo.d.ts +2 -2
- package/dist/types/components/Agent/Actions.d.ts +11 -0
- package/dist/types/components/Agent/AgentProfileCard.d.ts +5 -1
- package/dist/types/components/Agent/AgentProfileCardResourced.d.ts +2 -0
- package/dist/types/components/Agent/AgentProfileCardTrigger.d.ts +2 -2
- package/dist/types/components/Agent/ConversationStarters.d.ts +3 -0
- package/dist/types/components/Agent/lazyAgentProfileCard.d.ts +5 -1
- package/dist/types/components/Agent/useAgentActions.d.ts +7 -0
- package/dist/types/components/Agent/useSetFavouriteAgent.d.ts +10 -0
- package/dist/types/components/User/ProfileCardTrigger.d.ts +1 -1
- package/dist/types/index.d.ts +5 -1
- package/dist/types/types.d.ts +24 -3
- package/dist/types/util/rovoAgentUtils.d.ts +2 -0
- package/dist/types/util/url.d.ts +1 -0
- package/dist/types-ts4.5/client/RovoAgentCardClient.d.ts +1 -1
- package/dist/types-ts4.5/client/getAgentInfo.d.ts +2 -2
- package/dist/types-ts4.5/components/Agent/Actions.d.ts +11 -0
- package/dist/types-ts4.5/components/Agent/AgentProfileCard.d.ts +5 -1
- package/dist/types-ts4.5/components/Agent/AgentProfileCardResourced.d.ts +2 -0
- package/dist/types-ts4.5/components/Agent/AgentProfileCardTrigger.d.ts +2 -2
- package/dist/types-ts4.5/components/Agent/ConversationStarters.d.ts +3 -0
- package/dist/types-ts4.5/components/Agent/lazyAgentProfileCard.d.ts +5 -1
- package/dist/types-ts4.5/components/Agent/useAgentActions.d.ts +7 -0
- package/dist/types-ts4.5/components/Agent/useSetFavouriteAgent.d.ts +10 -0
- package/dist/types-ts4.5/components/User/ProfileCardTrigger.d.ts +1 -1
- package/dist/types-ts4.5/index.d.ts +5 -1
- package/dist/types-ts4.5/types.d.ts +27 -3
- package/dist/types-ts4.5/util/rovoAgentUtils.d.ts +2 -0
- package/dist/types-ts4.5/util/url.d.ts +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Stack } from '@atlaskit/primitives';
|
|
3
|
+
import { AgentConversationStarters } from '@atlaskit/rovo-agent-components';
|
|
4
|
+
export const ConversationStarters = ({
|
|
5
|
+
isAgentDefault,
|
|
6
|
+
onConversationStarterClick,
|
|
7
|
+
userDefinedConversationStarters
|
|
8
|
+
}) => {
|
|
9
|
+
const handleConversationStarterClick = conversationStarter => {
|
|
10
|
+
onConversationStarterClick(conversationStarter);
|
|
11
|
+
};
|
|
12
|
+
return /*#__PURE__*/React.createElement(Stack, {
|
|
13
|
+
space: "space.050",
|
|
14
|
+
alignInline: "start"
|
|
15
|
+
}, /*#__PURE__*/React.createElement(AgentConversationStarters, {
|
|
16
|
+
isAgentDefault: isAgentDefault,
|
|
17
|
+
onConversationStarterClick: handleConversationStarterClick,
|
|
18
|
+
userDefinedConversationStarters: userDefinedConversationStarters
|
|
19
|
+
}));
|
|
20
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { getATLContextUrl } from '@atlaskit/atlassian-context';
|
|
3
|
+
import { encodeParamsToUrl } from '../../util/url';
|
|
4
|
+
export const useAgentUrlActions = ({
|
|
5
|
+
cloudId
|
|
6
|
+
}) => {
|
|
7
|
+
const onEditAgent = useCallback(agentId => {
|
|
8
|
+
const url = `${getATLContextUrl('home')}/chat/agents/${agentId}/edit?cloudId=${cloudId}`;
|
|
9
|
+
window.open(url, '_blank', 'noopener, noreferrer');
|
|
10
|
+
}, [cloudId]);
|
|
11
|
+
const onCopyAgent = useCallback(agentId => {
|
|
12
|
+
const baseUrl = `${getATLContextUrl('home')}/chat`;
|
|
13
|
+
const urlWithParams = encodeParamsToUrl(baseUrl, {
|
|
14
|
+
cloudId,
|
|
15
|
+
pathway: 'chat',
|
|
16
|
+
agentId
|
|
17
|
+
});
|
|
18
|
+
navigator.clipboard.writeText(urlWithParams);
|
|
19
|
+
}, [cloudId]);
|
|
20
|
+
const onDuplicateAgent = useCallback(agentId => {
|
|
21
|
+
const baseUrl = `${getATLContextUrl('home')}/chat/agents/new`;
|
|
22
|
+
const urlWithParams = encodeParamsToUrl(baseUrl, {
|
|
23
|
+
cloudId,
|
|
24
|
+
pathway: 'agents-create',
|
|
25
|
+
agentId
|
|
26
|
+
});
|
|
27
|
+
window.open(urlWithParams, '_blank', 'noopener, noreferrer');
|
|
28
|
+
}, [cloudId]);
|
|
29
|
+
return {
|
|
30
|
+
onEditAgent,
|
|
31
|
+
onCopyAgent,
|
|
32
|
+
onDuplicateAgent
|
|
33
|
+
};
|
|
34
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
import { createHeaders } from '../../util/rovoAgentUtils';
|
|
3
|
+
export const useSetFavouriteAgent = ({
|
|
4
|
+
agentId,
|
|
5
|
+
cloudId,
|
|
6
|
+
isStarred,
|
|
7
|
+
product
|
|
8
|
+
}) => {
|
|
9
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
10
|
+
const [isFavourite, setIsFavourite] = useState(isStarred);
|
|
11
|
+
const setFavourite = async () => {
|
|
12
|
+
setIsLoading(true);
|
|
13
|
+
try {
|
|
14
|
+
const headers = createHeaders(product, cloudId);
|
|
15
|
+
if (isFavourite) {
|
|
16
|
+
await fetch(new Request(`/agents/v1/${agentId}/favourite`, {
|
|
17
|
+
method: 'POST',
|
|
18
|
+
credentials: 'include',
|
|
19
|
+
mode: 'cors',
|
|
20
|
+
headers
|
|
21
|
+
})).then(() => {
|
|
22
|
+
setIsFavourite(true);
|
|
23
|
+
});
|
|
24
|
+
} else {
|
|
25
|
+
await fetch(new Request(`/agents/v1/${agentId}/favourite`, {
|
|
26
|
+
method: 'DELETE',
|
|
27
|
+
credentials: 'include',
|
|
28
|
+
mode: 'cors',
|
|
29
|
+
headers
|
|
30
|
+
})).then(() => {
|
|
31
|
+
setIsFavourite(false);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
setIsLoading(false);
|
|
35
|
+
} catch (error) {
|
|
36
|
+
setIsLoading(false);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
isLoading,
|
|
41
|
+
isStarred: isFavourite,
|
|
42
|
+
// hasError: Boolean(error) || cannotLoadUser,
|
|
43
|
+
setFavourite
|
|
44
|
+
};
|
|
45
|
+
};
|
|
@@ -28,7 +28,8 @@ export default function ProfilecardTriggerNext({
|
|
|
28
28
|
ariaLabelledBy,
|
|
29
29
|
prepopulatedData,
|
|
30
30
|
disabledAriaAttributes,
|
|
31
|
-
onVisibilityChange
|
|
31
|
+
onVisibilityChange,
|
|
32
|
+
offset
|
|
32
33
|
}) {
|
|
33
34
|
const {
|
|
34
35
|
createAnalyticsEvent
|
|
@@ -221,6 +222,7 @@ export default function ProfilecardTriggerNext({
|
|
|
221
222
|
handleKeyboardClose(event);
|
|
222
223
|
},
|
|
223
224
|
placement: position,
|
|
225
|
+
offset: offset !== null && offset !== void 0 ? offset : [0, 8],
|
|
224
226
|
content: () => /*#__PURE__*/React.createElement("div", wrapperProps, showLoading ? /*#__PURE__*/React.createElement(LoadingView, {
|
|
225
227
|
fireAnalytics: fireAnalytics
|
|
226
228
|
}) : visible && /*#__PURE__*/React.createElement(Suspense, {
|
package/dist/es2019/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import ProfileCardClient from './client/ProfileCardClient';
|
|
|
5
5
|
import TeamProfileClient from './client/TeamProfileCardClient';
|
|
6
6
|
// Note: when generating and updating Flow types in Jira, `UserProfileClient` and `UserProfileCardClient` are the same type
|
|
7
7
|
import UserProfileClient, { modifyResponse } from './client/UserProfileCardClient';
|
|
8
|
+
import AgentProfileCard from './components/Agent/AgentProfileCard';
|
|
8
9
|
import TeamProfileCardTrigger from './components/Team/TeamProfileCardTrigger';
|
|
9
10
|
import ProfileCard from './components/User/ProfileCard';
|
|
10
11
|
import ProfileCardResourced from './components/User/ProfileCardResourced';
|
|
@@ -19,6 +20,9 @@ export { default as TeamProfileCard } from './components/Team/TeamProfileCard';
|
|
|
19
20
|
export { ProfileCard };
|
|
20
21
|
export { ProfileCardTrigger };
|
|
21
22
|
export { TeamProfileCardTrigger };
|
|
23
|
+
export { AgentProfileCard };
|
|
22
24
|
export { ProfileCardClient as ProfileClient, TeamProfileClient, UserProfileClient, modifyResponse };
|
|
23
25
|
export { DELAY_MS_SHOW, DELAY_MS_HIDE };
|
|
26
|
+
export { AgentProfileCardTrigger } from './components/Agent/AgentProfileCardTrigger';
|
|
27
|
+
export { AgentProfileCardResourced } from './components/Agent/AgentProfileCardResourced';
|
|
24
28
|
export default ProfileCardResourced;
|
|
@@ -32,7 +32,7 @@ const createEvent = (eventType, action, actionSubject, actionSubjectId, attribut
|
|
|
32
32
|
actionSubjectId,
|
|
33
33
|
attributes: {
|
|
34
34
|
packageName: "@atlaskit/profilecard",
|
|
35
|
-
packageVersion: "19.
|
|
35
|
+
packageVersion: "19.18.0",
|
|
36
36
|
...attributes,
|
|
37
37
|
firedAt: Math.round(getPageTime())
|
|
38
38
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const createHeaders = (product, cloudId) => {
|
|
2
|
+
const config = {
|
|
3
|
+
headers: {
|
|
4
|
+
'X-Product': product,
|
|
5
|
+
'X-Experience-Id': 'profile-card',
|
|
6
|
+
'X-Cloudid': cloudId
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
return new Headers({
|
|
10
|
+
...(config.headers || {})
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
export const getAAIDFromARI = ari => {
|
|
14
|
+
const matched = ari.match(/\/([a-zA-Z0-9_\|\-\:]{1,128})$/);
|
|
15
|
+
return matched ? matched[1] : undefined;
|
|
16
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const encodeParamsToUrl = (baseUrl, params) => {
|
|
2
|
+
const url = new URL(baseUrl);
|
|
3
|
+
const searchParams = new URLSearchParams();
|
|
4
|
+
for (const [key, value] of Object.entries(params)) {
|
|
5
|
+
searchParams.append(key, String(value));
|
|
6
|
+
}
|
|
7
|
+
url.search = searchParams.toString();
|
|
8
|
+
return url.toString();
|
|
9
|
+
};
|
|
@@ -25,11 +25,11 @@ var RovoAgentCardClient = /*#__PURE__*/function (_CachingClient) {
|
|
|
25
25
|
}
|
|
26
26
|
_createClass(RovoAgentCardClient, [{
|
|
27
27
|
key: "makeRequest",
|
|
28
|
-
value: function makeRequest(agentId) {
|
|
28
|
+
value: function makeRequest(agentId, cloudId) {
|
|
29
29
|
if (!this.options.productIdentifier) {
|
|
30
30
|
throw new Error('Trying to fetch agents data with no specified config.productIdentifier');
|
|
31
31
|
}
|
|
32
|
-
return getAgentDetailsByAgentId(agentId, this.options.productIdentifier);
|
|
32
|
+
return getAgentDetailsByAgentId(agentId, this.options.productIdentifier, cloudId);
|
|
33
33
|
}
|
|
34
34
|
}, {
|
|
35
35
|
key: "getProfile",
|
|
@@ -38,6 +38,9 @@ var RovoAgentCardClient = /*#__PURE__*/function (_CachingClient) {
|
|
|
38
38
|
if (!agentId) {
|
|
39
39
|
return Promise.reject(new Error('agentId is missing'));
|
|
40
40
|
}
|
|
41
|
+
if (!this.options.cloudId) {
|
|
42
|
+
return Promise.reject(new Error('cloudId is missing'));
|
|
43
|
+
}
|
|
41
44
|
var cache = this.getCachedProfile(agentId);
|
|
42
45
|
if (cache) {
|
|
43
46
|
return Promise.resolve(cache);
|
|
@@ -47,7 +50,7 @@ var RovoAgentCardClient = /*#__PURE__*/function (_CachingClient) {
|
|
|
47
50
|
if (analytics) {
|
|
48
51
|
analytics(agentRequestAnalytics('triggered'));
|
|
49
52
|
}
|
|
50
|
-
_this2.makeRequest(agentId).then(function (data) {
|
|
53
|
+
_this2.makeRequest(agentId, _this2.options.cloudId || '').then(function (data) {
|
|
51
54
|
if (_this2.cache) {
|
|
52
55
|
_this2.setCachedProfile(agentId, data);
|
|
53
56
|
}
|
|
@@ -1,27 +1,16 @@
|
|
|
1
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
2
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var createHeaders = function createHeaders(product) {
|
|
7
|
-
var config = {
|
|
8
|
-
headers: {
|
|
9
|
-
'x-product': product,
|
|
10
|
-
'x-experience-id': 'profile-card'
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
return new Headers(_objectSpread({}, config.headers || {}));
|
|
14
|
-
};
|
|
15
|
-
export function getAgentDetailsByAgentId(_x, _x2) {
|
|
3
|
+
import { createHeaders } from '../util/rovoAgentUtils';
|
|
4
|
+
export function getAgentDetailsByAgentId(_x, _x2, _x3) {
|
|
16
5
|
return _getAgentDetailsByAgentId.apply(this, arguments);
|
|
17
6
|
}
|
|
18
7
|
function _getAgentDetailsByAgentId() {
|
|
19
|
-
_getAgentDetailsByAgentId = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(agentId, product) {
|
|
8
|
+
_getAgentDetailsByAgentId = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(agentId, product, cloudId) {
|
|
20
9
|
var headers;
|
|
21
10
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
22
11
|
while (1) switch (_context.prev = _context.next) {
|
|
23
12
|
case 0:
|
|
24
|
-
headers = createHeaders(product);
|
|
13
|
+
headers = createHeaders(product, cloudId);
|
|
25
14
|
_context.next = 3;
|
|
26
15
|
return fetch(new Request("assist/agents/v1/".concat(agentId), {
|
|
27
16
|
method: 'GET',
|
|
@@ -41,16 +30,16 @@ function _getAgentDetailsByAgentId() {
|
|
|
41
30
|
}));
|
|
42
31
|
return _getAgentDetailsByAgentId.apply(this, arguments);
|
|
43
32
|
}
|
|
44
|
-
export function getAgentDetailsByUserId(
|
|
33
|
+
export function getAgentDetailsByUserId(_x4, _x5, _x6) {
|
|
45
34
|
return _getAgentDetailsByUserId.apply(this, arguments);
|
|
46
35
|
}
|
|
47
36
|
function _getAgentDetailsByUserId() {
|
|
48
|
-
_getAgentDetailsByUserId = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(userId, product) {
|
|
37
|
+
_getAgentDetailsByUserId = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(userId, product, cloudId) {
|
|
49
38
|
var headers;
|
|
50
39
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
51
40
|
while (1) switch (_context2.prev = _context2.next) {
|
|
52
41
|
case 0:
|
|
53
|
-
headers = createHeaders(product);
|
|
42
|
+
headers = createHeaders(product, cloudId);
|
|
54
43
|
_context2.next = 3;
|
|
55
44
|
return fetch(new Request("assist/agents/v1/accountid/".concat(userId), {
|
|
56
45
|
method: 'GET',
|
|
@@ -48,7 +48,7 @@ export var addHeaders = function addHeaders(headers) {
|
|
|
48
48
|
headers.append('X-ExperimentalApi', 'teams-beta');
|
|
49
49
|
headers.append('X-ExperimentalApi', 'team-members-beta');
|
|
50
50
|
headers.append('atl-client-name', "@atlaskit/profilecard");
|
|
51
|
-
headers.append('atl-client-version', "19.
|
|
51
|
+
headers.append('atl-client-version', "19.18.0");
|
|
52
52
|
return headers;
|
|
53
53
|
};
|
|
54
54
|
export function getTeamFromAGG(_x, _x2, _x3) {
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
+
var _excluded = ["triggerRef"];
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { defineMessages, FormattedMessage, useIntl } from 'react-intl-next';
|
|
6
|
+
import Button, { IconButton } from '@atlaskit/button/new';
|
|
7
|
+
import DropdownMenu, { DropdownItem, DropdownItemGroup } from '@atlaskit/dropdown-menu';
|
|
8
|
+
import MoreIcon from '@atlaskit/icon/core/migration/show-more-horizontal--more';
|
|
9
|
+
import { Box, Inline, xcss } from '@atlaskit/primitives';
|
|
10
|
+
import { ChatPillIcon } from '@atlaskit/rovo-agent-components';
|
|
11
|
+
var chatToAgentButtonContainer = xcss({
|
|
12
|
+
width: '100%'
|
|
13
|
+
});
|
|
14
|
+
var buttonStyles = xcss({
|
|
15
|
+
borderRadius: '3px',
|
|
16
|
+
color: 'color.text',
|
|
17
|
+
backgroundColor: 'color.background.neutral',
|
|
18
|
+
':hover': {
|
|
19
|
+
backgroundColor: 'color.background.neutral.hovered'
|
|
20
|
+
},
|
|
21
|
+
':active': {
|
|
22
|
+
backgroundColor: 'color.background.neutral.pressed'
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
var chatToAgentButtonWrapper = xcss({
|
|
26
|
+
display: 'flex',
|
|
27
|
+
justifyContent: 'center',
|
|
28
|
+
lineHeight: '20px',
|
|
29
|
+
padding: 'space.075',
|
|
30
|
+
fontWeight: '500'
|
|
31
|
+
});
|
|
32
|
+
var chatPillButtonInlineStyles = xcss({
|
|
33
|
+
paddingInline: 'space.025'
|
|
34
|
+
});
|
|
35
|
+
var chatPillTextStyles = xcss({
|
|
36
|
+
wordBreak: 'break-word',
|
|
37
|
+
textAlign: 'left',
|
|
38
|
+
whiteSpace: 'pre-wrap'
|
|
39
|
+
});
|
|
40
|
+
var chatPillIconWrapper = xcss({
|
|
41
|
+
minWidth: '20px',
|
|
42
|
+
height: '20px'
|
|
43
|
+
});
|
|
44
|
+
var actopnsWrapperStyles = xcss({
|
|
45
|
+
borderTop: '1px',
|
|
46
|
+
borderTopStyle: 'solid',
|
|
47
|
+
borderColor: 'color.border',
|
|
48
|
+
padding: 'space.200',
|
|
49
|
+
marginBlockStart: 'space.200',
|
|
50
|
+
color: 'color.text'
|
|
51
|
+
});
|
|
52
|
+
var buildAgentActions = function buildAgentActions(_ref) {
|
|
53
|
+
var onDuplicateAgent = _ref.onDuplicateAgent,
|
|
54
|
+
onCopyAgent = _ref.onCopyAgent;
|
|
55
|
+
return [{
|
|
56
|
+
text: /*#__PURE__*/React.createElement(FormattedMessage, messages.actionDuplicate),
|
|
57
|
+
onClick: onDuplicateAgent
|
|
58
|
+
}, {
|
|
59
|
+
text: /*#__PURE__*/React.createElement(FormattedMessage, messages.actionCopyLink),
|
|
60
|
+
onClick: onCopyAgent
|
|
61
|
+
}];
|
|
62
|
+
};
|
|
63
|
+
var buildAgentSettings = function buildAgentSettings(_ref2) {
|
|
64
|
+
var onEditAgent = _ref2.onEditAgent,
|
|
65
|
+
onDeleteAgent = _ref2.onDeleteAgent;
|
|
66
|
+
return [{
|
|
67
|
+
text: /*#__PURE__*/React.createElement(FormattedMessage, messages.actionEdit),
|
|
68
|
+
onClick: onEditAgent
|
|
69
|
+
}, {
|
|
70
|
+
text: /*#__PURE__*/React.createElement(FormattedMessage, messages.actionDelete),
|
|
71
|
+
onClick: onDeleteAgent
|
|
72
|
+
}];
|
|
73
|
+
};
|
|
74
|
+
export var AgentActions = function AgentActions(_ref3) {
|
|
75
|
+
var isAgentCreatedByCurrentUser = _ref3.isAgentCreatedByCurrentUser,
|
|
76
|
+
onEditAgent = _ref3.onEditAgent,
|
|
77
|
+
onDeleteAgent = _ref3.onDeleteAgent,
|
|
78
|
+
onDuplicateAgent = _ref3.onDuplicateAgent,
|
|
79
|
+
onCopyAgent = _ref3.onCopyAgent,
|
|
80
|
+
onChatClick = _ref3.onChatClick;
|
|
81
|
+
var _useIntl = useIntl(),
|
|
82
|
+
formatMessage = _useIntl.formatMessage;
|
|
83
|
+
var agentActions = buildAgentActions({
|
|
84
|
+
onDuplicateAgent: onDuplicateAgent,
|
|
85
|
+
onCopyAgent: onCopyAgent
|
|
86
|
+
});
|
|
87
|
+
var agentSetting = buildAgentSettings({
|
|
88
|
+
onEditAgent: onEditAgent,
|
|
89
|
+
onDeleteAgent: onDeleteAgent
|
|
90
|
+
});
|
|
91
|
+
return /*#__PURE__*/React.createElement(Inline, {
|
|
92
|
+
space: "space.100",
|
|
93
|
+
xcss: actopnsWrapperStyles
|
|
94
|
+
}, /*#__PURE__*/React.createElement(Box, {
|
|
95
|
+
xcss: [chatToAgentButtonContainer, buttonStyles]
|
|
96
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
97
|
+
shouldFitContainer: true,
|
|
98
|
+
onClick: onChatClick
|
|
99
|
+
}, /*#__PURE__*/React.createElement(Box, {
|
|
100
|
+
xcss: chatToAgentButtonWrapper
|
|
101
|
+
}, /*#__PURE__*/React.createElement(Inline, {
|
|
102
|
+
space: "space.050",
|
|
103
|
+
xcss: chatPillButtonInlineStyles
|
|
104
|
+
}, /*#__PURE__*/React.createElement(Box, {
|
|
105
|
+
xcss: chatPillIconWrapper
|
|
106
|
+
}, /*#__PURE__*/React.createElement(ChatPillIcon, null)), /*#__PURE__*/React.createElement(Box, {
|
|
107
|
+
xcss: chatPillTextStyles
|
|
108
|
+
}, formatMessage(messages.actionChatToAgent)))))), /*#__PURE__*/React.createElement(DropdownMenu, {
|
|
109
|
+
trigger: function trigger(_ref4) {
|
|
110
|
+
var triggerRef = _ref4.triggerRef,
|
|
111
|
+
props = _objectWithoutProperties(_ref4, _excluded);
|
|
112
|
+
return /*#__PURE__*/React.createElement(Box, {
|
|
113
|
+
xcss: buttonStyles
|
|
114
|
+
}, /*#__PURE__*/React.createElement(IconButton, _extends({}, props, {
|
|
115
|
+
icon: MoreIcon,
|
|
116
|
+
label: "more",
|
|
117
|
+
ref: triggerRef
|
|
118
|
+
})));
|
|
119
|
+
},
|
|
120
|
+
placement: "bottom-end"
|
|
121
|
+
}, /*#__PURE__*/React.createElement(DropdownItemGroup, null, agentActions.map(function (_ref5, idx) {
|
|
122
|
+
var text = _ref5.text,
|
|
123
|
+
onClick = _ref5.onClick;
|
|
124
|
+
return /*#__PURE__*/React.createElement(DropdownItem, {
|
|
125
|
+
key: idx,
|
|
126
|
+
onClick: onClick
|
|
127
|
+
}, text);
|
|
128
|
+
})), isAgentCreatedByCurrentUser && /*#__PURE__*/React.createElement(DropdownItemGroup, {
|
|
129
|
+
hasSeparator: true
|
|
130
|
+
}, agentSetting.map(function (_ref6, idx) {
|
|
131
|
+
var text = _ref6.text,
|
|
132
|
+
onClick = _ref6.onClick;
|
|
133
|
+
return /*#__PURE__*/React.createElement(DropdownItem, {
|
|
134
|
+
key: idx,
|
|
135
|
+
onClick: onClick
|
|
136
|
+
}, text);
|
|
137
|
+
}))));
|
|
138
|
+
};
|
|
139
|
+
var messages = defineMessages({
|
|
140
|
+
actionChatToAgent: {
|
|
141
|
+
id: 'ptc-directory.agent-profile.action.dropdown.chat-to-agent.nonfinal',
|
|
142
|
+
defaultMessage: 'Chat to Agent',
|
|
143
|
+
description: 'Text for the "chat to agent" action to chat to the agent'
|
|
144
|
+
},
|
|
145
|
+
actionDelete: {
|
|
146
|
+
id: 'ptc-directory.agent-profile.action.dropdown.delete.nonfinal',
|
|
147
|
+
defaultMessage: 'Delete Agent',
|
|
148
|
+
description: 'Text for the "Delete" action to delete an agent'
|
|
149
|
+
},
|
|
150
|
+
actionEdit: {
|
|
151
|
+
id: 'ptc-directory.agent-profile.action.dropdown.edit.nonfinal',
|
|
152
|
+
defaultMessage: 'Edit Agent',
|
|
153
|
+
description: 'Text for the "Edit" action to edit an agent'
|
|
154
|
+
},
|
|
155
|
+
actionCopyLink: {
|
|
156
|
+
id: 'ptc-directory.agent-profile.action.dropdown.copy-link.nonfinal',
|
|
157
|
+
defaultMessage: 'Copy link',
|
|
158
|
+
description: 'Text for the Copy link of an agent'
|
|
159
|
+
},
|
|
160
|
+
actionDuplicate: {
|
|
161
|
+
id: 'ptc-directory.agent-profile.action.dropdown.duplicate.nonfinal',
|
|
162
|
+
defaultMessage: 'Duplicate Agent',
|
|
163
|
+
description: 'Text for the Duplicate Agent action to create a duplicate'
|
|
164
|
+
}
|
|
165
|
+
});
|
|
@@ -1,20 +1,49 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Box, Stack, xcss } from '@atlaskit/primitives';
|
|
3
|
-
import { AgentProfileCreator, AgentProfileInfo, AgentStarCount } from '@atlaskit/rovo-agent-components';
|
|
3
|
+
import { AgentAvatar, AgentBanner, AgentProfileCreator, AgentProfileInfo, AgentStarCount } from '@atlaskit/rovo-agent-components';
|
|
4
4
|
import LoadingState from '../common/LoadingState';
|
|
5
|
+
import { AgentActions } from './Actions';
|
|
5
6
|
import { AgentProfileCardWrapper } from './AgentProfileCardWrapper';
|
|
7
|
+
import { ConversationStarters } from './ConversationStarters';
|
|
8
|
+
import { useAgentUrlActions } from './useAgentActions';
|
|
9
|
+
import { useSetFavouriteAgent } from './useSetFavouriteAgent';
|
|
6
10
|
var styles = xcss({
|
|
7
|
-
|
|
11
|
+
paddingBlockStart: 'space.400',
|
|
8
12
|
paddingInline: 'space.200'
|
|
9
13
|
});
|
|
14
|
+
var avatarStyles = xcss({
|
|
15
|
+
position: 'absolute',
|
|
16
|
+
top: 'space.300',
|
|
17
|
+
left: 'space.200'
|
|
18
|
+
});
|
|
10
19
|
var cardContainerStyles = xcss({
|
|
11
20
|
borderRadius: 'border.radius.200',
|
|
12
|
-
boxShadow: 'elevation.shadow.overlay'
|
|
21
|
+
boxShadow: 'elevation.shadow.overlay',
|
|
22
|
+
position: 'relative'
|
|
13
23
|
});
|
|
14
24
|
var AgentProfileCard = function AgentProfileCard(_ref) {
|
|
15
25
|
var _agent$creatorInfo, _agent$creatorInfo2, _agent$creatorInfo3, _agent$creatorInfo4;
|
|
16
26
|
var agent = _ref.agent,
|
|
17
|
-
isLoading = _ref.isLoading
|
|
27
|
+
isLoading = _ref.isLoading,
|
|
28
|
+
isCreatedByViewingUser = _ref.isCreatedByViewingUser,
|
|
29
|
+
cloudId = _ref.cloudId,
|
|
30
|
+
onOpenChat = _ref.onOpenChat,
|
|
31
|
+
_ref$product = _ref.product,
|
|
32
|
+
product = _ref$product === void 0 ? 'rovo' : _ref$product;
|
|
33
|
+
var _useAgentUrlActions = useAgentUrlActions({
|
|
34
|
+
cloudId: cloudId || ''
|
|
35
|
+
}),
|
|
36
|
+
_onEditAgent = _useAgentUrlActions.onEditAgent,
|
|
37
|
+
_onCopyAgent = _useAgentUrlActions.onCopyAgent,
|
|
38
|
+
_onDuplicateAgent = _useAgentUrlActions.onDuplicateAgent;
|
|
39
|
+
var _useSetFavouriteAgent = useSetFavouriteAgent({
|
|
40
|
+
agentId: agent.id,
|
|
41
|
+
cloudId: cloudId || '',
|
|
42
|
+
isStarred: agent.favourite,
|
|
43
|
+
product: product
|
|
44
|
+
}),
|
|
45
|
+
isStarred = _useSetFavouriteAgent.isStarred,
|
|
46
|
+
setFavourite = _useSetFavouriteAgent.setFavourite;
|
|
18
47
|
if (isLoading) {
|
|
19
48
|
return /*#__PURE__*/React.createElement(AgentProfileCardWrapper, null, /*#__PURE__*/React.createElement(LoadingState, {
|
|
20
49
|
profileType: "agent"
|
|
@@ -22,13 +51,19 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
|
|
|
22
51
|
}
|
|
23
52
|
return /*#__PURE__*/React.createElement(AgentProfileCardWrapper, null, /*#__PURE__*/React.createElement(Box, {
|
|
24
53
|
xcss: cardContainerStyles
|
|
25
|
-
}, /*#__PURE__*/React.createElement(
|
|
54
|
+
}, /*#__PURE__*/React.createElement(AgentBanner, {
|
|
55
|
+
height: 96
|
|
56
|
+
}), /*#__PURE__*/React.createElement(Box, {
|
|
57
|
+
xcss: avatarStyles
|
|
58
|
+
}, /*#__PURE__*/React.createElement(AgentAvatar, {
|
|
59
|
+
size: "xlarge"
|
|
60
|
+
})), /*#__PURE__*/React.createElement(Stack, {
|
|
26
61
|
space: "space.100",
|
|
27
62
|
xcss: styles
|
|
28
63
|
}, /*#__PURE__*/React.createElement(AgentProfileInfo, {
|
|
29
64
|
agentName: agent.name,
|
|
30
|
-
isStarred:
|
|
31
|
-
onStarToggle:
|
|
65
|
+
isStarred: isStarred,
|
|
66
|
+
onStarToggle: setFavourite,
|
|
32
67
|
creatorRender: ((_agent$creatorInfo = agent.creatorInfo) === null || _agent$creatorInfo === void 0 ? void 0 : _agent$creatorInfo.type) && /*#__PURE__*/React.createElement(AgentProfileCreator, {
|
|
33
68
|
creator: {
|
|
34
69
|
type: (_agent$creatorInfo2 = agent.creatorInfo) === null || _agent$creatorInfo2 === void 0 ? void 0 : _agent$creatorInfo2.type,
|
|
@@ -43,6 +78,29 @@ var AgentProfileCard = function AgentProfileCard(_ref) {
|
|
|
43
78
|
isLoading: false
|
|
44
79
|
}),
|
|
45
80
|
agentDescription: agent.description
|
|
46
|
-
})
|
|
81
|
+
}), /*#__PURE__*/React.createElement(ConversationStarters, {
|
|
82
|
+
isAgentDefault: agent.is_default,
|
|
83
|
+
userDefinedConversationStarters: agent.user_defined_conversation_starters,
|
|
84
|
+
onConversationStarterClick: function onConversationStarterClick(conversationStarter) {
|
|
85
|
+
throw new Error('Function not implemented.');
|
|
86
|
+
}
|
|
87
|
+
})), /*#__PURE__*/React.createElement(AgentActions, {
|
|
88
|
+
isAgentCreatedByCurrentUser: isCreatedByViewingUser,
|
|
89
|
+
onEditAgent: function onEditAgent() {
|
|
90
|
+
return _onEditAgent(agent.id);
|
|
91
|
+
},
|
|
92
|
+
onCopyAgent: function onCopyAgent() {
|
|
93
|
+
return _onCopyAgent(agent.id);
|
|
94
|
+
},
|
|
95
|
+
onDuplicateAgent: function onDuplicateAgent() {
|
|
96
|
+
return _onDuplicateAgent(agent.id);
|
|
97
|
+
},
|
|
98
|
+
onDeleteAgent: function onDeleteAgent() {
|
|
99
|
+
throw new Error('Function not implemented.');
|
|
100
|
+
},
|
|
101
|
+
onChatClick: function onChatClick() {
|
|
102
|
+
return onOpenChat === null || onOpenChat === void 0 ? void 0 : onOpenChat(agent.id);
|
|
103
|
+
}
|
|
104
|
+
})));
|
|
47
105
|
};
|
|
48
106
|
export default AgentProfileCard;
|
|
@@ -4,7 +4,8 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
|
4
4
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
5
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
6
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
7
|
-
import React, { useCallback, useEffect, useState } from 'react';
|
|
7
|
+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
8
|
+
import { getAAIDFromARI } from '../../util/rovoAgentUtils';
|
|
8
9
|
import ErrorMessage from '../Error/ErrorMessage';
|
|
9
10
|
import { AgentProfileCardWrapper } from './AgentProfileCardWrapper';
|
|
10
11
|
import { AgentProfileCardLazy } from './lazyAgentProfileCard';
|
|
@@ -21,6 +22,9 @@ export var AgentProfileCardResourced = function AgentProfileCardResourced(props)
|
|
|
21
22
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
22
23
|
error = _useState6[0],
|
|
23
24
|
setError = _useState6[1];
|
|
25
|
+
var creatorUserId = useMemo(function () {
|
|
26
|
+
return (agentData === null || agentData === void 0 ? void 0 : agentData.creator_type) === 'CUSTOMER' && agentData.creator ? getAAIDFromARI(agentData.creator) : '';
|
|
27
|
+
}, [agentData === null || agentData === void 0 ? void 0 : agentData.creator_type, agentData === null || agentData === void 0 ? void 0 : agentData.creator]);
|
|
24
28
|
var getCreator = useCallback( /*#__PURE__*/function () {
|
|
25
29
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(creator_type, creator) {
|
|
26
30
|
var creatorInfo;
|
|
@@ -47,13 +51,13 @@ export var AgentProfileCardResourced = function AgentProfileCardResourced(props)
|
|
|
47
51
|
});
|
|
48
52
|
case 7:
|
|
49
53
|
_context.next = 9;
|
|
50
|
-
return props.resourceClient.getProfile(
|
|
54
|
+
return props.resourceClient.getProfile(creatorUserId || '', props.cloudId || '');
|
|
51
55
|
case 9:
|
|
52
56
|
creatorInfo = _context.sent;
|
|
53
57
|
return _context.abrupt("return", {
|
|
54
58
|
type: 'CUSTOMER',
|
|
55
59
|
name: creatorInfo.fullName,
|
|
56
|
-
profileLink: "/people/".concat(
|
|
60
|
+
profileLink: "/people/".concat(creatorUserId)
|
|
57
61
|
});
|
|
58
62
|
case 11:
|
|
59
63
|
return _context.abrupt("return", undefined);
|
|
@@ -66,7 +70,7 @@ export var AgentProfileCardResourced = function AgentProfileCardResourced(props)
|
|
|
66
70
|
return function (_x, _x2) {
|
|
67
71
|
return _ref.apply(this, arguments);
|
|
68
72
|
};
|
|
69
|
-
}(), [props.cloudId, props.resourceClient]);
|
|
73
|
+
}(), [creatorUserId, props.cloudId, props.resourceClient]);
|
|
70
74
|
var getAgentInfo = useCallback(function () {
|
|
71
75
|
return props.resourceClient.getRovoAgentProfile(props.agentId);
|
|
72
76
|
}, [props.agentId, props.resourceClient]);
|
|
@@ -136,7 +140,9 @@ export var AgentProfileCardResourced = function AgentProfileCardResourced(props)
|
|
|
136
140
|
return /*#__PURE__*/React.createElement(AgentProfileCardLazy, {
|
|
137
141
|
agent: agentData,
|
|
138
142
|
isLoading: isLoading,
|
|
139
|
-
hasError: !!error
|
|
143
|
+
hasError: !!error,
|
|
144
|
+
isCreatedByViewingUser: creatorUserId === props.viewingUserId,
|
|
145
|
+
product: props.product
|
|
140
146
|
});
|
|
141
147
|
}
|
|
142
148
|
return null;
|