@rh-support/react-context 0.3.2 → 0.3.5
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/lib/esm/GlobalContextWrapper.d.ts +1 -0
- package/lib/esm/GlobalContextWrapper.d.ts.map +1 -1
- package/lib/esm/components/EmbeddedServiceChat/ChatSVGIcon.d.ts +2 -0
- package/lib/esm/components/EmbeddedServiceChat/ChatSVGIcon.d.ts.map +1 -0
- package/lib/esm/components/EmbeddedServiceChat/ChatSVGIcon.js +9 -0
- package/lib/esm/components/EmbeddedServiceChat/EmbeddedServiceChat.d.ts +4 -0
- package/lib/esm/components/EmbeddedServiceChat/EmbeddedServiceChat.d.ts.map +1 -0
- package/lib/esm/components/EmbeddedServiceChat/EmbeddedServiceChat.js +13 -0
- package/lib/esm/components/EmbeddedServiceChat/ExtraPreChatInfo.d.ts +12 -0
- package/lib/esm/components/EmbeddedServiceChat/ExtraPreChatInfo.d.ts.map +1 -0
- package/lib/esm/components/EmbeddedServiceChat/ExtraPreChatInfo.js +29 -0
- package/lib/esm/components/EmbeddedServiceChat/embeddedServiceChat.css +17 -0
- package/lib/esm/components/EmbeddedServiceChat/index.d.ts +2 -0
- package/lib/esm/components/EmbeddedServiceChat/index.d.ts.map +1 -0
- package/lib/esm/components/EmbeddedServiceChat/index.js +1 -0
- package/lib/esm/components/HostnameAwarenessModal/HostnameAwarenessModal.d.ts.map +1 -1
- package/lib/esm/components/HostnameAwarenessModal/HostnameAwarenessModal.js +7 -2
- package/lib/esm/components/HostnameAwarenessModal/hostnameAwarenessModal.css +4 -0
- package/lib/esm/components/index.d.ts +1 -0
- package/lib/esm/components/index.d.ts.map +1 -1
- package/lib/esm/components/index.js +1 -0
- package/lib/esm/hooks/index.d.ts +2 -0
- package/lib/esm/hooks/index.d.ts.map +1 -1
- package/lib/esm/hooks/index.js +2 -0
- package/lib/esm/hooks/useChatInit.d.ts +15 -0
- package/lib/esm/hooks/useChatInit.d.ts.map +1 -0
- package/lib/esm/hooks/useChatInit.js +67 -0
- package/lib/esm/hooks/usePreChatFormDetails.d.ts +12 -0
- package/lib/esm/hooks/usePreChatFormDetails.d.ts.map +1 -0
- package/lib/esm/hooks/usePreChatFormDetails.js +77 -0
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalContextWrapper.d.ts","sourceRoot":"","sources":["../../src/GlobalContextWrapper.tsx"],"names":[],"mappings":"AAmBA,UAAU,MAAM;IACZ,QAAQ,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;CACzC;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,SAAS,EAAE,GAAG,CAAC;QACf,oBAAoB,EAAE,GAAG,CAAC;QAC1B,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,MAAM,OAAA,KAAK,GAAG,KAAK,GAAG,CAAC;QAC9E,MAAM,EAAE,GAAG,CAAC;QACZ,KAAK,EAAE,GAAG,CAAC;QACX,eAAe,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"GlobalContextWrapper.d.ts","sourceRoot":"","sources":["../../src/GlobalContextWrapper.tsx"],"names":[],"mappings":"AAmBA,UAAU,MAAM;IACZ,QAAQ,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;CACzC;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,SAAS,EAAE,GAAG,CAAC;QACf,oBAAoB,EAAE,GAAG,CAAC;QAC1B,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,MAAM,OAAA,KAAK,GAAG,KAAK,GAAG,CAAC;QAC9E,MAAM,EAAE,GAAG,CAAC;QACZ,KAAK,EAAE,GAAG,CAAC;QACX,eAAe,EAAE,GAAG,CAAC;QACrB,YAAY,EAAE,GAAG,CAAC;KACrB;IAED,UAAU,QAAQ;QACd,YAAY,EAAE,GAAG,CAAC;KACrB;CACJ;AA6FD,eAAO,MAAM,oBAAoB,UAAW,MAAM,gBAKjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatSVGIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/EmbeddedServiceChat/ChatSVGIcon.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,mBAwBvB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export const ChatSVGIcon = () => {
|
|
3
|
+
return (React.createElement("svg", { width: "36", height: "36", viewBox: "0 0 36 36", fill: "none", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink" },
|
|
4
|
+
React.createElement("rect", { width: "36", height: "36", fill: "url(#pattern0)" }),
|
|
5
|
+
React.createElement("defs", null,
|
|
6
|
+
React.createElement("pattern", { id: "pattern0", patternContentUnits: "objectBoundingBox", width: "1", height: "1" },
|
|
7
|
+
React.createElement("use", { xlinkHref: "#image0_726_235", transform: "scale(0.00277778)" })),
|
|
8
|
+
React.createElement("image", { id: "image0_726_235", width: "360", height: "360", xlinkHref: "data:image/png;base64,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" }))));
|
|
9
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmbeddedServiceChat.d.ts","sourceRoot":"","sources":["../../../../src/components/EmbeddedServiceChat/EmbeddedServiceChat.tsx"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AAEnC,OAAc,EAAE,EAAE,EAAa,MAAM,OAAO,CAAC;AAK7C,eAAO,MAAM,mBAAmB,EAAE,EAiBjC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import './embeddedServiceChat.css';
|
|
2
|
+
import React, { useEffect } from 'react';
|
|
3
|
+
import { useChatInit } from '../..';
|
|
4
|
+
import { ChatSVGIcon } from './ChatSVGIcon';
|
|
5
|
+
export const EmbeddedServiceChat = () => {
|
|
6
|
+
const { loadingChat, isChatStarted, initEmbedChat, onStartChat } = useChatInit();
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
initEmbedChat();
|
|
9
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
10
|
+
}, []);
|
|
11
|
+
return !isChatStarted ? (React.createElement("div", { className: `chatButton ${loadingChat && 'chatLoading'}`, onClick: onStartChat, "data-tracking-id": "embedded-service-chat" },
|
|
12
|
+
React.createElement(ChatSVGIcon, null))) : null;
|
|
13
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const extraPreChatInfo: {
|
|
2
|
+
entityFieldMaps: {
|
|
3
|
+
doCreate: boolean;
|
|
4
|
+
doFind: boolean;
|
|
5
|
+
fieldName: string;
|
|
6
|
+
isExactMatch: boolean;
|
|
7
|
+
label: string;
|
|
8
|
+
}[];
|
|
9
|
+
entityName: string;
|
|
10
|
+
saveToTranscript: string;
|
|
11
|
+
}[];
|
|
12
|
+
//# sourceMappingURL=ExtraPreChatInfo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtraPreChatInfo.d.ts","sourceRoot":"","sources":["../../../../src/components/EmbeddedServiceChat/ExtraPreChatInfo.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB;;;;;;;;;;GA6B5B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export const extraPreChatInfo = [
|
|
2
|
+
{
|
|
3
|
+
entityFieldMaps: [
|
|
4
|
+
{
|
|
5
|
+
doCreate: false,
|
|
6
|
+
doFind: true,
|
|
7
|
+
fieldName: 'SSO_Username__c',
|
|
8
|
+
isExactMatch: true,
|
|
9
|
+
label: 'SSO Name',
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
doCreate: false,
|
|
13
|
+
doFind: true,
|
|
14
|
+
fieldName: 'ContactSessionId__c',
|
|
15
|
+
isExactMatch: false,
|
|
16
|
+
label: 'SessionId',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
doCreate: false,
|
|
20
|
+
doFind: true,
|
|
21
|
+
fieldName: 'Account',
|
|
22
|
+
isExactMatch: true,
|
|
23
|
+
label: 'account',
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
entityName: '',
|
|
27
|
+
saveToTranscript: 'SSO_Username__c',
|
|
28
|
+
},
|
|
29
|
+
];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
.chatButton {
|
|
2
|
+
position: fixed;
|
|
3
|
+
right: 4rem;
|
|
4
|
+
bottom: 1rem;
|
|
5
|
+
background: #ffffff;
|
|
6
|
+
box-shadow: 0px 2px 3px rgb(0 0 0 / 15%);
|
|
7
|
+
border-radius: 3px;
|
|
8
|
+
cursor: pointer;
|
|
9
|
+
padding: 4px;
|
|
10
|
+
width: 44px;
|
|
11
|
+
height: 44px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.chatLoading {
|
|
15
|
+
opacity: 0.7;
|
|
16
|
+
pointer-events: none;
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/EmbeddedServiceChat/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './EmbeddedServiceChat';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HostnameAwarenessModal.d.ts","sourceRoot":"","sources":["../../../../src/components/HostnameAwarenessModal/HostnameAwarenessModal.tsx"],"names":[],"mappings":"AAAA,OAAO,8BAA8B,CAAC;AAatC,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"HostnameAwarenessModal.d.ts","sourceRoot":"","sources":["../../../../src/components/HostnameAwarenessModal/HostnameAwarenessModal.tsx"],"names":[],"mappings":"AAAA,OAAO,8BAA8B,CAAC;AAatC,eAAO,MAAM,sBAAsB,mBA0JlC,CAAC"}
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import './hostnameAwarenessModal.css';
|
|
11
11
|
import { accounts } from '@cee-eng/hydrajs';
|
|
12
|
-
import { Button, Checkbox, Modal, ModalVariant, Switch, Tooltip } from '@patternfly/react-core';
|
|
12
|
+
import { Button, Checkbox, Modal, ModalVariant, Spinner, Switch, Tooltip } from '@patternfly/react-core';
|
|
13
13
|
import InfoIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
|
|
14
14
|
import { useFetch } from '@rh-support/components';
|
|
15
15
|
import { ability, CaseListFields, resourceActions, resources } from '@rh-support/user-permissions';
|
|
@@ -27,6 +27,7 @@ export const HostnameAwarenessModal = () => {
|
|
|
27
27
|
const [isHostnamesChecked, setisHostnamesChecked] = useState(false);
|
|
28
28
|
//preserving initial state to disable modal load
|
|
29
29
|
const [alreadyCheckedCloseModal, setAlreadyCheckedCloseModal] = useState(false);
|
|
30
|
+
const [isHostnamesLoading, setIsHostnamesLoading] = useState(true);
|
|
30
31
|
const userOriginalHostnamesCount = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
31
32
|
try {
|
|
32
33
|
const originalHostnameVisibilityObj = yield getHostnamesVisibilityObj();
|
|
@@ -47,6 +48,7 @@ export const HostnameAwarenessModal = () => {
|
|
|
47
48
|
setisHostnamesChecked(fetchedHostnameStatus.shareHostnameWithRHT);
|
|
48
49
|
// This is needed so we preserve initial state we do not close modal upon updating names.
|
|
49
50
|
setAlreadyCheckedCloseModal(fetchedHostnameStatus.shareHostnameWithRHT);
|
|
51
|
+
setIsHostnamesLoading(false);
|
|
50
52
|
});
|
|
51
53
|
useEffect(() => {
|
|
52
54
|
userOriginalHostnamesCount();
|
|
@@ -66,12 +68,14 @@ export const HostnameAwarenessModal = () => {
|
|
|
66
68
|
// for hostnames swich
|
|
67
69
|
const onHostnameSwitchChange = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
68
70
|
try {
|
|
71
|
+
setIsHostnamesLoading(true);
|
|
69
72
|
yield updateHostnameDefault(!isHostnamesChecked, accountNumber);
|
|
70
73
|
setisHostnamesChecked(!isHostnamesChecked);
|
|
71
74
|
}
|
|
72
75
|
catch (error) {
|
|
73
76
|
console.log(error);
|
|
74
77
|
}
|
|
78
|
+
setIsHostnamesLoading(false);
|
|
75
79
|
});
|
|
76
80
|
//for the checkbox
|
|
77
81
|
const onDoNotAskAgain = () => {
|
|
@@ -91,7 +95,8 @@ export const HostnameAwarenessModal = () => {
|
|
|
91
95
|
return (React.createElement(React.Fragment, null,
|
|
92
96
|
React.createElement(Switch, { label: "Share hostnames", isChecked: isHostnamesChecked, onChange: onHostnameSwitchChange, className: "push-top-narrow" }),
|
|
93
97
|
React.createElement(Tooltip, { content: shareHostnamesClarificationCopy, position: "right" },
|
|
94
|
-
React.createElement(InfoIcon, { className: "pf-u-ml-sm hostnameInfoIcon" }))
|
|
98
|
+
React.createElement(InfoIcon, { className: "pf-u-ml-sm hostnameInfoIcon" })),
|
|
99
|
+
isHostnamesLoading && (React.createElement(Spinner, { isSVG: true, size: "lg", className: "pf-u-ml-sm hostnameSpinner", "aria-label": "Hostname loading" }))));
|
|
95
100
|
};
|
|
96
101
|
//Do not show modal if user cannot share hostnames.
|
|
97
102
|
const canUseHostName = ability.can(resourceActions.PATCH, resources.CASE_CREATE, CaseListFields.HOSTNAME);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC"}
|
package/lib/esm/hooks/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC"}
|
package/lib/esm/hooks/index.js
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface IChatOptions {
|
|
2
|
+
loadingChat: boolean;
|
|
3
|
+
isChatStarted: boolean;
|
|
4
|
+
initEmbedChat: () => void;
|
|
5
|
+
onStartChat: () => void;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* This hook is used for setting chat up and listing custom event of chat.
|
|
9
|
+
* for more details https://developer.salesforce.com/docs/atlas.en-us.snapins_web_dev.meta/snapins_web_dev/snapins_web_chat_events.htm
|
|
10
|
+
* @param initialState
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
export declare const useChatInit: (initialState?: boolean) => IChatOptions;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=useChatInit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChatInit.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChatInit.ts"],"names":[],"mappings":"AAKA,UAAU,YAAY;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,kBAAkB,OAAO,KAAW,YA+D3D,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { useState } from 'react';
|
|
11
|
+
import { extraPreChatInfo } from '../components/EmbeddedServiceChat/ExtraPreChatInfo';
|
|
12
|
+
import { usePreChatFormDetails } from './usePreChatFormDetails';
|
|
13
|
+
/**
|
|
14
|
+
* This hook is used for setting chat up and listing custom event of chat.
|
|
15
|
+
* for more details https://developer.salesforce.com/docs/atlas.en-us.snapins_web_dev.meta/snapins_web_dev/snapins_web_chat_events.htm
|
|
16
|
+
* @param initialState
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
export const useChatInit = (initialState = false) => {
|
|
20
|
+
const [isChatStarted, setChatStart] = useState(initialState);
|
|
21
|
+
// Need to set loading status true as it will prevent starting chat before loading necessary dependencies
|
|
22
|
+
const [loadingChat, setLoadingChat] = useState(true);
|
|
23
|
+
const getChatFormDetails = usePreChatFormDetails();
|
|
24
|
+
const onStartChat = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
25
|
+
setLoadingChat(true);
|
|
26
|
+
yield window.embedded_svc.liveAgentAPI.startChat({
|
|
27
|
+
extraPrechatInfo: extraPreChatInfo,
|
|
28
|
+
extraPrechatFormDetails: getChatFormDetails(),
|
|
29
|
+
});
|
|
30
|
+
setChatStart(true);
|
|
31
|
+
setLoadingChat(false);
|
|
32
|
+
});
|
|
33
|
+
const initEmbedChat = () => {
|
|
34
|
+
const extraPreChatFormDetails = getChatFormDetails();
|
|
35
|
+
initESW('https://service.force.com', extraPreChatFormDetails);
|
|
36
|
+
};
|
|
37
|
+
const initESW = (gslbBaseURL, extraPreChatFormDetails) => {
|
|
38
|
+
window.embedded_svc.settings.displayHelpButton = false; //Or false
|
|
39
|
+
window.embedded_svc.settings.language = 'en'; //For example, enter 'en' or 'en-US'
|
|
40
|
+
window.embedded_svc.settings.enabledFeatures = ['LiveAgent'];
|
|
41
|
+
window.embedded_svc.settings.entryFeature = 'LiveAgent';
|
|
42
|
+
window.embedded_svc.settings.extraPrechatFormDetails = extraPreChatFormDetails;
|
|
43
|
+
window.embedded_svc.settings.extraPrechatInfo = extraPreChatInfo;
|
|
44
|
+
window.embedded_svc.init('https://gss--qa.my.salesforce.com', 'https://qa-gssdex.cs203.force.com/botchat', gslbBaseURL, '00D7j0000008oSo', 'RedHatChatBot', {
|
|
45
|
+
baseLiveAgentContentURL: 'https://c.la3-c1cs-ia4.salesforceliveagent.com/content',
|
|
46
|
+
deploymentId: '5727j0000004CqR',
|
|
47
|
+
buttonId: '5737j0000004CKB',
|
|
48
|
+
baseLiveAgentURL: 'https://d.la3-c1cs-ia4.salesforceliveagent.com/chat',
|
|
49
|
+
eswLiveAgentDevName: 'EmbeddedServiceLiveAgent_Parent04I7j000000CadEEAS_180b2280b37',
|
|
50
|
+
isOfflineSupportEnabled: false,
|
|
51
|
+
});
|
|
52
|
+
// Fired when Embedded Service Chat has ended and the application is closed.
|
|
53
|
+
window.embedded_svc.addEventHandler('afterDestroy', function (data) {
|
|
54
|
+
setChatStart(false);
|
|
55
|
+
});
|
|
56
|
+
// After loading and setting step is complete we are good to call `bootstrapEmbeddedService`
|
|
57
|
+
window.embedded_svc.addEventHandler('onSettingsCallCompleted', function (data) {
|
|
58
|
+
setLoadingChat(false);
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
return {
|
|
62
|
+
loadingChat,
|
|
63
|
+
isChatStarted,
|
|
64
|
+
initEmbedChat,
|
|
65
|
+
onStartChat,
|
|
66
|
+
};
|
|
67
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface IPreChatFormDetails {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string;
|
|
4
|
+
transcriptFields?: Array<string>;
|
|
5
|
+
displayToAgent: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
* The use of this hook is to generate form details based on user current screen
|
|
10
|
+
*/
|
|
11
|
+
export declare const usePreChatFormDetails: () => (() => IPreChatFormDetails[]);
|
|
12
|
+
//# sourceMappingURL=usePreChatFormDetails.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePreChatFormDetails.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePreChatFormDetails.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,cAAc,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AAEH,eAAO,MAAM,qBAAqB,QAAO,CAAC,MAAM,mBAAmB,EAAE,CA4DpE,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { publicApi } from '@cee-eng/hydrajs';
|
|
11
|
+
import { isValidCaseNumber } from '@rh-support/utils';
|
|
12
|
+
import { useContext, useEffect, useState } from 'react';
|
|
13
|
+
import { useRouteMatch } from 'react-router-dom';
|
|
14
|
+
import { GlobalMetadataStateContext } from '../context/GlobalMetadataContext';
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* The use of this hook is to generate form details based on user current screen
|
|
18
|
+
*/
|
|
19
|
+
export const usePreChatFormDetails = () => {
|
|
20
|
+
var _a;
|
|
21
|
+
const { globalMetadataState: { loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
|
|
22
|
+
const [sessionId, setSessionId] = useState('');
|
|
23
|
+
const loggedInUserRightsData = loggedInUserRights === null || loggedInUserRights === void 0 ? void 0 : loggedInUserRights.data;
|
|
24
|
+
const ssoName = loggedInUserRightsData.getSSOUsername();
|
|
25
|
+
const name = loggedInUserRightsData.getUserFullName();
|
|
26
|
+
const accountNumber = loggedInUserRightsData.getAccountNumber();
|
|
27
|
+
const match = useRouteMatch('/case/:caseNumber');
|
|
28
|
+
const caseNumber = (_a = match === null || match === void 0 ? void 0 : match.params) === null || _a === void 0 ? void 0 : _a.caseNumber;
|
|
29
|
+
const isCaseDetailsPage = isValidCaseNumber(caseNumber);
|
|
30
|
+
const currentCaseNumber = isCaseDetailsPage ? caseNumber : undefined;
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
try {
|
|
33
|
+
const fetchChatSessionId = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
34
|
+
const { message } = yield publicApi.chat.getChatSession();
|
|
35
|
+
setSessionId(message);
|
|
36
|
+
});
|
|
37
|
+
fetchChatSessionId();
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.log('Error', error);
|
|
41
|
+
}
|
|
42
|
+
}, []);
|
|
43
|
+
const getChatFormDetails = () => [
|
|
44
|
+
{
|
|
45
|
+
label: 'SSO Name',
|
|
46
|
+
value: ssoName,
|
|
47
|
+
transcriptFields: ['SSO_Username__c'],
|
|
48
|
+
displayToAgent: true,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
label: 'SessionId',
|
|
52
|
+
value: sessionId,
|
|
53
|
+
transcriptFields: ['SessionId__c'],
|
|
54
|
+
displayToAgent: true,
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
label: 'name',
|
|
58
|
+
value: name,
|
|
59
|
+
displayToAgent: true,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
label: 'account',
|
|
63
|
+
value: accountNumber,
|
|
64
|
+
displayToAgent: true,
|
|
65
|
+
},
|
|
66
|
+
...(currentCaseNumber
|
|
67
|
+
? [
|
|
68
|
+
{
|
|
69
|
+
label: 'currentCaseNumber',
|
|
70
|
+
value: currentCaseNumber,
|
|
71
|
+
displayToAgent: true,
|
|
72
|
+
},
|
|
73
|
+
]
|
|
74
|
+
: []),
|
|
75
|
+
];
|
|
76
|
+
return getChatFormDetails;
|
|
77
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/react-context",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"@cee-eng/hydrajs": "4.12.7",
|
|
45
45
|
"@patternfly/react-core": "4.202.16",
|
|
46
46
|
"@patternfly/react-icons": "4.53.16",
|
|
47
|
-
"@rh-support/components": "1.1.
|
|
47
|
+
"@rh-support/components": "1.1.84",
|
|
48
48
|
"@rh-support/types": "0.2.0",
|
|
49
|
-
"@rh-support/user-permissions": "0.2.
|
|
50
|
-
"@rh-support/utils": "0.2.
|
|
49
|
+
"@rh-support/user-permissions": "0.2.68",
|
|
50
|
+
"@rh-support/utils": "0.2.50",
|
|
51
51
|
"i18next": "^19.0.1",
|
|
52
52
|
"localforage": "^1.7.3",
|
|
53
53
|
"lodash": "^4.17.21",
|
|
@@ -87,5 +87,5 @@
|
|
|
87
87
|
"not ie <= 11",
|
|
88
88
|
"not op_mini all"
|
|
89
89
|
],
|
|
90
|
-
"gitHead": "
|
|
90
|
+
"gitHead": "d1025a2463c9e2bac873dd764a02518fbb5b5e47"
|
|
91
91
|
}
|