@rh-support/react-context 2.5.309 → 2.5.319
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 +3 -1
- package/lib/esm/GlobalContextWrapper.d.ts.map +1 -1
- package/lib/esm/GlobalContextWrapper.js +8 -26
- package/lib/esm/components/AccountSelector/AccountSelectorInternal.d.ts +2 -1
- package/lib/esm/components/AccountSelector/AccountSelectorInternal.d.ts.map +1 -1
- package/lib/esm/components/AccountSelector/AccountSelectorInternal.js +37 -93
- package/lib/esm/components/EmbeddedServiceChat/EmbeddedServiceChat.d.ts +0 -6
- package/lib/esm/components/EmbeddedServiceChat/EmbeddedServiceChat.d.ts.map +1 -1
- package/lib/esm/components/EmbeddedServiceChat/EmbeddedServiceChat.js +51 -17
- 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 +51 -1
- package/lib/esm/components/SharedModals/CloseCaseModal.js +1 -1
- package/lib/esm/hooks/index.d.ts +1 -0
- package/lib/esm/hooks/index.d.ts.map +1 -1
- package/lib/esm/hooks/index.js +1 -0
- package/lib/esm/hooks/useCanEditCase.d.ts +1 -2
- package/lib/esm/hooks/useCanEditCase.d.ts.map +1 -1
- package/lib/esm/hooks/useCanEditCase.js +3 -20
- package/lib/esm/hooks/useChatConfig.d.ts +17 -9
- package/lib/esm/hooks/useChatConfig.d.ts.map +1 -1
- package/lib/esm/hooks/useChatConfig.js +43 -11
- package/lib/esm/hooks/useChatInit.d.ts +13 -9
- package/lib/esm/hooks/useChatInit.d.ts.map +1 -1
- package/lib/esm/hooks/useChatInit.js +119 -63
- 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 +61 -0
- package/lib/esm/index.d.ts +0 -1
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +0 -2
- package/lib/esm/reducers/GlobalMetadataHelpers.d.ts.map +1 -1
- package/lib/esm/reducers/GlobalMetadataHelpers.js +6 -2
- package/lib/esm/reducers/GlobalMetadataReducer.d.ts +15 -48
- package/lib/esm/reducers/GlobalMetadataReducer.d.ts.map +1 -1
- package/lib/esm/reducers/GlobalMetadataReducer.js +82 -253
- package/package.json +7 -10
- package/lib/esm/context/CaseStatusContext.d.ts +0 -9
- package/lib/esm/context/CaseStatusContext.d.ts.map +0 -1
- package/lib/esm/context/CaseStatusContext.js +0 -5
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
export interface IEnhancedChatConfig {
|
|
2
|
-
orgId: string;
|
|
3
|
-
deploymentDevName: string;
|
|
4
|
-
siteURL: string;
|
|
5
|
-
scrt2URL: string;
|
|
6
|
-
bootstrapScriptURL: string;
|
|
7
|
-
}
|
|
8
1
|
/**
|
|
9
|
-
*
|
|
2
|
+
*
|
|
3
|
+
* This hook is used for selected chat configuration based on environment
|
|
10
4
|
*/
|
|
11
|
-
export declare const useChatConfig: () =>
|
|
5
|
+
export declare const useChatConfig: () => {
|
|
6
|
+
host: string;
|
|
7
|
+
sandBox: string;
|
|
8
|
+
gslbBaseURL: string;
|
|
9
|
+
key: string;
|
|
10
|
+
appName: string;
|
|
11
|
+
extra: {
|
|
12
|
+
baseLiveAgentContentURL: string;
|
|
13
|
+
deploymentId: string;
|
|
14
|
+
buttonId: string;
|
|
15
|
+
baseLiveAgentURL: string;
|
|
16
|
+
eswLiveAgentDevName: string;
|
|
17
|
+
isOfflineSupportEnabled: boolean;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
12
20
|
//# sourceMappingURL=useChatConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatConfig.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChatConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useChatConfig.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChatConfig.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;CAqDzB,CAAC"}
|
|
@@ -1,26 +1,58 @@
|
|
|
1
1
|
import { Env } from '@cee-eng/hydrajs';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* This hook is used for selected chat configuration based on environment
|
|
4
5
|
*/
|
|
5
6
|
export const useChatConfig = () => {
|
|
6
7
|
const env = Env.getEnvName();
|
|
7
8
|
switch (env) {
|
|
8
9
|
case Env.EnvNames.QA:
|
|
10
|
+
return {
|
|
11
|
+
host: 'https://gss--qa.sandbox.my.salesforce.com',
|
|
12
|
+
sandBox: 'https://gss--qa.sandbox.my.site.com/botchat',
|
|
13
|
+
gslbBaseURL: 'https://service.force.com',
|
|
14
|
+
key: '00D8I0000016hOv',
|
|
15
|
+
appName: 'RedHatChatBot',
|
|
16
|
+
extra: {
|
|
17
|
+
baseLiveAgentContentURL: 'https://c.la4-c1cs-ia4.salesforceliveagent.com/content',
|
|
18
|
+
deploymentId: '5726R000000sXtR',
|
|
19
|
+
buttonId: '5736R000000wk2n',
|
|
20
|
+
baseLiveAgentURL: 'https://d.la4-c1cs-ia4.salesforceliveagent.com/chat',
|
|
21
|
+
eswLiveAgentDevName: 'EmbeddedServiceLiveAgent_Parent04I6R000000wk2oUAA_180f4e169cb',
|
|
22
|
+
isOfflineSupportEnabled: false,
|
|
23
|
+
},
|
|
24
|
+
};
|
|
9
25
|
case Env.EnvNames.STAGE:
|
|
10
26
|
return {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
27
|
+
host: 'https://gss--stage2.sandbox.my.salesforce.com',
|
|
28
|
+
sandBox: 'https://gss--stage2.sandbox.my.site.com/botchat',
|
|
29
|
+
gslbBaseURL: 'https://service.force.com',
|
|
30
|
+
key: '00DD7000000jd7T',
|
|
31
|
+
appName: 'RedHatChatBot',
|
|
32
|
+
extra: {
|
|
33
|
+
baseLiveAgentContentURL: 'https://c.la3-c1cs-ia7.salesforceliveagent.com/content',
|
|
34
|
+
deploymentId: '5726R000000sXtR',
|
|
35
|
+
buttonId: '5736R000000wk2n',
|
|
36
|
+
baseLiveAgentURL: 'https://d.la3-c1cs-ia7.salesforceliveagent.com/chat',
|
|
37
|
+
eswLiveAgentDevName: 'EmbeddedServiceLiveAgent_Parent04I6R000000wk2oUAA_180f4e169cb',
|
|
38
|
+
isOfflineSupportEnabled: false,
|
|
39
|
+
},
|
|
16
40
|
};
|
|
17
41
|
default:
|
|
18
42
|
return {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
43
|
+
host: 'https://gss.my.salesforce.com',
|
|
44
|
+
sandBox: 'https://gss.my.site.com/botchat',
|
|
45
|
+
gslbBaseURL: 'https://service.force.com',
|
|
46
|
+
key: '00DA0000000HxWH',
|
|
47
|
+
appName: 'RedHatChatBot',
|
|
48
|
+
extra: {
|
|
49
|
+
baseLiveAgentContentURL: 'https://c.la3-c1-ia6.salesforceliveagent.com/content',
|
|
50
|
+
deploymentId: '5726R000000sXtR',
|
|
51
|
+
buttonId: '5736R000000wk2n',
|
|
52
|
+
baseLiveAgentURL: 'https://d.la3-c1-ia6.salesforceliveagent.com/chat',
|
|
53
|
+
eswLiveAgentDevName: 'EmbeddedServiceLiveAgent_Parent04I6R000000wk2oUAA_180f4e169cb',
|
|
54
|
+
isOfflineSupportEnabled: false,
|
|
55
|
+
},
|
|
24
56
|
};
|
|
25
57
|
}
|
|
26
58
|
};
|
|
@@ -1,18 +1,22 @@
|
|
|
1
|
+
import { IPreChatFormDetails } from './usePreChatFormDetails';
|
|
1
2
|
interface IChatOptions {
|
|
2
3
|
loadingChat: boolean;
|
|
4
|
+
isChatStarted: boolean;
|
|
5
|
+
hasBlockedByBrowser: boolean;
|
|
6
|
+
hasChatDomainsBlocked: boolean;
|
|
7
|
+
initEmbedChat: () => void;
|
|
8
|
+
onStartChat: () => void;
|
|
3
9
|
chatServiceNotAvailable: boolean;
|
|
4
10
|
hasBlockedByCookie: boolean;
|
|
11
|
+
/** Pre-chat form details (SSO, sessionId, etc.). From single usePreChatFormDetails instance to avoid duplicate API calls. */
|
|
12
|
+
getChatFormDetails: () => IPreChatFormDetails[];
|
|
5
13
|
}
|
|
6
14
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* confirmed, and the `onload` callback is used instead of polling so we
|
|
12
|
-
* never race against network latency.
|
|
13
|
-
*
|
|
14
|
-
* @see https://developer.salesforce.com/docs/service/messaging-web/guide/set-up-embedded-messaging.html
|
|
15
|
+
* This hook is used for setting chat up and listing custom event of chat.
|
|
16
|
+
* for more details https://developer.salesforce.com/docs/atlas.en-us.snapins_web_dev.meta/snapins_web_dev/snapins_web_chat_events.htm
|
|
17
|
+
* @param initialState
|
|
18
|
+
* @returns
|
|
15
19
|
*/
|
|
16
|
-
export declare const useChatInit: () => IChatOptions;
|
|
20
|
+
export declare const useChatInit: (initialState?: boolean) => IChatOptions;
|
|
17
21
|
export {};
|
|
18
22
|
//# sourceMappingURL=useChatInit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatInit.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChatInit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useChatInit.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChatInit.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAyB,MAAM,yBAAyB,CAAC;AAErF,UAAU,YAAY;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,uBAAuB,EAAE,OAAO,CAAC;IACjC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,6HAA6H;IAC7H,kBAAkB,EAAE,MAAM,mBAAmB,EAAE,CAAC;CACnD;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,eAAc,OAAe,KAAG,YA4H3D,CAAC"}
|
|
@@ -1,78 +1,134 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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 { enableScripts, getCookieValue, waitForWindowVariable } from '@rh-support/utils';
|
|
11
|
+
import { useEffect, useState } from 'react';
|
|
12
|
+
import { extraPreChatInfo } from '../components/EmbeddedServiceChat/ExtraPreChatInfo';
|
|
4
13
|
import { useChatConfig } from './useChatConfig';
|
|
14
|
+
import { usePreChatFormDetails } from './usePreChatFormDetails';
|
|
5
15
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* confirmed, and the `onload` callback is used instead of polling so we
|
|
11
|
-
* never race against network latency.
|
|
12
|
-
*
|
|
13
|
-
* @see https://developer.salesforce.com/docs/service/messaging-web/guide/set-up-embedded-messaging.html
|
|
16
|
+
* This hook is used for setting chat up and listing custom event of chat.
|
|
17
|
+
* for more details https://developer.salesforce.com/docs/atlas.en-us.snapins_web_dev.meta/snapins_web_dev/snapins_web_chat_events.htm
|
|
18
|
+
* @param initialState
|
|
19
|
+
* @returns
|
|
14
20
|
*/
|
|
15
|
-
export const useChatInit = () => {
|
|
21
|
+
export const useChatInit = (initialState = false) => {
|
|
22
|
+
const [isChatStarted, setChatStart] = useState(initialState);
|
|
23
|
+
// Need to set loading status true as it will prevent starting chat before loading necessary dependencies
|
|
16
24
|
const [loadingChat, setLoadingChat] = useState(true);
|
|
25
|
+
const [hasBlockedByBrowser, setHasBlockedByBrowser] = useState(false);
|
|
26
|
+
const [hasChatDomainsBlocked, setHasChatDomainsBlocked] = useState(false);
|
|
17
27
|
const [chatServiceNotAvailable, setChatServiceNotAvailable] = useState(false);
|
|
18
28
|
const [hasBlockedByCookie, setHasBlockedByCookie] = useState(false);
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const fullName = loggedInUserRights === null || loggedInUserRights === void 0 ? void 0 : loggedInUserRights.data.getUserFullName();
|
|
22
|
-
const { orgId, deploymentDevName, siteURL, scrt2URL, bootstrapScriptURL } = useChatConfig();
|
|
23
|
-
const ssoNameRef = useRef(ssoName);
|
|
24
|
-
ssoNameRef.current = ssoName;
|
|
25
|
-
const fullNameRef = useRef(fullName);
|
|
26
|
-
fullNameRef.current = fullName;
|
|
29
|
+
const getChatFormDetails = usePreChatFormDetails();
|
|
30
|
+
const { host, sandBox, gslbBaseURL, key, appName, extra } = useChatConfig();
|
|
27
31
|
useEffect(() => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
/*
|
|
33
|
+
retrieve TrustArc cookie value
|
|
34
|
+
value is like "permit 1,2,3" when all cookie types are accepted
|
|
35
|
+
1-> Required Cookies
|
|
36
|
+
2-> Functional Cookies
|
|
37
|
+
3-> Advertising Cookies
|
|
38
|
+
we need to make sure 2 that indicates functional cookies is included in value
|
|
39
|
+
*/
|
|
40
|
+
var preferences = getCookieValue('cmapi_cookie_privacy');
|
|
41
|
+
if (preferences && preferences.includes('2')) {
|
|
42
|
+
// based on TrustArc cookie consent, cookie is allowed
|
|
43
|
+
enableScripts();
|
|
44
|
+
const initChatService = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
45
|
+
try {
|
|
46
|
+
yield waitForWindowVariable('embedded_svc', 10000);
|
|
47
|
+
initEmbedChat();
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
console.error('Error: Chat service not available', e.message);
|
|
51
|
+
setLoadingChat(false);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
initChatService();
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
31
57
|
setHasBlockedByCookie(true);
|
|
32
|
-
setLoadingChat(false);
|
|
33
|
-
return;
|
|
34
58
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
59
|
+
setLoadingChat(false);
|
|
60
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
61
|
+
}, []);
|
|
62
|
+
const onStartChat = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
63
|
+
setLoadingChat(true);
|
|
64
|
+
try {
|
|
65
|
+
// if chat didn't start after a long wait
|
|
66
|
+
// then we assume browser has blocked the script
|
|
67
|
+
const blockedTimeOut = setTimeout(() => {
|
|
68
|
+
if (!window.$Lightning) {
|
|
69
|
+
setHasBlockedByBrowser(true);
|
|
70
|
+
setLoadingChat(false);
|
|
71
|
+
}
|
|
72
|
+
}, 10000);
|
|
73
|
+
yield window.embedded_svc.liveAgentAPI.startChat({
|
|
74
|
+
extraPrechatInfo: extraPreChatInfo,
|
|
75
|
+
extraPrechatFormDetails: getChatFormDetails(),
|
|
39
76
|
});
|
|
77
|
+
clearTimeout(blockedTimeOut);
|
|
78
|
+
setHasBlockedByBrowser(false);
|
|
79
|
+
setChatStart(true);
|
|
40
80
|
setLoadingChat(false);
|
|
41
|
-
};
|
|
42
|
-
const initChat = () => {
|
|
43
|
-
try {
|
|
44
|
-
window.embeddedservice_bootstrap.settings.language = 'en_US';
|
|
45
|
-
window.embeddedservice_bootstrap.init(orgId, deploymentDevName, siteURL, { scrt2URL });
|
|
46
|
-
}
|
|
47
|
-
catch (err) {
|
|
48
|
-
console.error('Error loading Enhanced Messaging: ', err);
|
|
49
|
-
setChatServiceNotAvailable(true);
|
|
50
|
-
setLoadingChat(false);
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
window.addEventListener('onEmbeddedMessagingReady', onMessagingReady);
|
|
54
|
-
if ((_a = window.embeddedservice_bootstrap) === null || _a === void 0 ? void 0 : _a.prechatAPI) {
|
|
55
|
-
onMessagingReady();
|
|
56
81
|
}
|
|
57
|
-
|
|
58
|
-
|
|
82
|
+
catch (e) {
|
|
83
|
+
setLoadingChat(false);
|
|
84
|
+
setHasBlockedByBrowser(true);
|
|
59
85
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
script.onerror = () => {
|
|
66
|
-
console.error('Failed to load Enhanced Messaging bootstrap script');
|
|
67
|
-
setChatServiceNotAvailable(true);
|
|
68
|
-
setLoadingChat(false);
|
|
69
|
-
};
|
|
70
|
-
document.body.appendChild(script);
|
|
86
|
+
});
|
|
87
|
+
const initEmbedChat = () => {
|
|
88
|
+
const extraPreChatFormDetails = getChatFormDetails();
|
|
89
|
+
try {
|
|
90
|
+
initESW(extraPreChatFormDetails);
|
|
71
91
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
|
|
92
|
+
catch (e) {
|
|
93
|
+
setChatServiceNotAvailable(true);
|
|
94
|
+
console.log(e);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
const initESW = (extraPreChatFormDetails) => {
|
|
98
|
+
window.embedded_svc.settings.displayHelpButton = false; //Or false
|
|
99
|
+
window.embedded_svc.settings.language = 'en'; //For example, enter 'en' or 'en-US'
|
|
100
|
+
window.embedded_svc.settings.enabledFeatures = ['LiveAgent'];
|
|
101
|
+
window.embedded_svc.settings.entryFeature = 'LiveAgent';
|
|
102
|
+
window.embedded_svc.settings.extraPrechatFormDetails = extraPreChatFormDetails;
|
|
103
|
+
window.embedded_svc.settings.extraPrechatInfo = extraPreChatInfo;
|
|
104
|
+
window.embedded_svc.init(host, sandBox, gslbBaseURL, key, appName, extra);
|
|
105
|
+
// Fired when Embedded Service Chat has ended and the application is closed.
|
|
106
|
+
window.embedded_svc.addEventHandler('afterDestroy', function (data) {
|
|
107
|
+
setChatStart(false);
|
|
108
|
+
});
|
|
109
|
+
// if chat didn't initialized after a long wait then we assume
|
|
110
|
+
// chat domains blocked by client network or browser
|
|
111
|
+
const blockedByNetworkTimeOut = setTimeout(() => {
|
|
112
|
+
if (!window.liveAgentDeployment) {
|
|
113
|
+
setHasChatDomainsBlocked(true);
|
|
114
|
+
setLoadingChat(false);
|
|
115
|
+
}
|
|
116
|
+
}, 10000);
|
|
117
|
+
// After loading and setting step is complete we are good to call `bootstrapEmbeddedService`
|
|
118
|
+
window.embedded_svc.addEventHandler('onSettingsCallCompleted', function (data) {
|
|
119
|
+
setLoadingChat(false);
|
|
120
|
+
clearTimeout(blockedByNetworkTimeOut);
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
return {
|
|
124
|
+
loadingChat,
|
|
125
|
+
isChatStarted,
|
|
126
|
+
hasBlockedByBrowser,
|
|
127
|
+
hasChatDomainsBlocked,
|
|
128
|
+
initEmbedChat,
|
|
129
|
+
onStartChat,
|
|
130
|
+
chatServiceNotAvailable,
|
|
131
|
+
hasBlockedByCookie,
|
|
132
|
+
getChatFormDetails,
|
|
133
|
+
};
|
|
78
134
|
};
|
|
@@ -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":"AAKA,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,CA+CpE,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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 { useContext, useEffect, useState } from 'react';
|
|
12
|
+
import { GlobalMetadataStateContext } from '../context/GlobalMetadataContext';
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* The use of this hook is to generate form details based on user current screen
|
|
16
|
+
*/
|
|
17
|
+
export const usePreChatFormDetails = () => {
|
|
18
|
+
const { globalMetadataState: { loggedInUserRights }, } = useContext(GlobalMetadataStateContext);
|
|
19
|
+
const [sessionId, setSessionId] = useState('');
|
|
20
|
+
const loggedInUserRightsData = loggedInUserRights === null || loggedInUserRights === void 0 ? void 0 : loggedInUserRights.data;
|
|
21
|
+
const ssoName = loggedInUserRightsData.getSSOUsername();
|
|
22
|
+
const name = loggedInUserRightsData.getUserFullName();
|
|
23
|
+
const accountNumber = loggedInUserRightsData.getAccountNumber();
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
try {
|
|
26
|
+
const fetchChatSessionId = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
const { message } = yield publicApi.chat.getChatSession();
|
|
28
|
+
setSessionId(message);
|
|
29
|
+
});
|
|
30
|
+
fetchChatSessionId();
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
console.log('Error', error);
|
|
34
|
+
}
|
|
35
|
+
}, []);
|
|
36
|
+
const getChatFormDetails = () => [
|
|
37
|
+
{
|
|
38
|
+
label: 'SSO Name',
|
|
39
|
+
value: ssoName,
|
|
40
|
+
transcriptFields: ['SSO_Username__c'],
|
|
41
|
+
displayToAgent: true,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
label: 'SessionId',
|
|
45
|
+
value: sessionId,
|
|
46
|
+
transcriptFields: ['SessionId__c'],
|
|
47
|
+
displayToAgent: true,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
label: 'name',
|
|
51
|
+
value: name,
|
|
52
|
+
displayToAgent: true,
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
label: 'account',
|
|
56
|
+
value: accountNumber,
|
|
57
|
+
displayToAgent: true,
|
|
58
|
+
},
|
|
59
|
+
];
|
|
60
|
+
return getChatFormDetails;
|
|
61
|
+
};
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -5,6 +5,5 @@ export { GlobalContextWrapper } from './GlobalContextWrapper';
|
|
|
5
5
|
export { GlobalMetadataContextProvider, GlobalMetadataStateContext, GlobalMetadataDispatchContext, IGlobalMetadataStateContext, useGlobalDispatchContext, useGlobalStateContext, } from './context/GlobalMetadataContext';
|
|
6
6
|
export { GlobalTranslationContext, GlobalTranslationProvider, cacheTrans, SELECTED_TRANS_LANGUAGE, } from './context/GlobalTranslationProvider';
|
|
7
7
|
export { GlobalAlertMessageContextProvider, GlobalAlertMessageStateContext, GlobalAlertMessageDispatchContext, IGlobalAlertMessageStateContext, useGlobalAlertMessageDispatchContext, useGlobalAlertMessageStateContext, } from './context/GlobalAlertMessageContext';
|
|
8
|
-
export { CaseStatusContext, CaseStatusProvider } from './context/CaseStatusContext';
|
|
9
8
|
export * from './utils';
|
|
10
9
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACH,6BAA6B,EAC7B,0BAA0B,EAC1B,6BAA6B,EAC7B,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,GACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACH,wBAAwB,EACxB,yBAAyB,EACzB,UAAU,EACV,uBAAuB,GAC1B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACH,iCAAiC,EACjC,8BAA8B,EAC9B,iCAAiC,EACjC,+BAA+B,EAC/B,oCAAoC,EACpC,iCAAiC,GACpC,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACH,6BAA6B,EAC7B,0BAA0B,EAC1B,6BAA6B,EAC7B,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,GACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACH,wBAAwB,EACxB,yBAAyB,EACzB,UAAU,EACV,uBAAuB,GAC1B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACH,iCAAiC,EACjC,8BAA8B,EAC9B,iCAAiC,EACjC,+BAA+B,EAC/B,oCAAoC,EACpC,iCAAiC,GACpC,MAAM,qCAAqC,CAAC;AAE7C,cAAc,SAAS,CAAC"}
|
package/lib/esm/index.js
CHANGED
|
@@ -6,6 +6,4 @@ export { GlobalContextWrapper } from './GlobalContextWrapper';
|
|
|
6
6
|
export { GlobalMetadataContextProvider, GlobalMetadataStateContext, GlobalMetadataDispatchContext, useGlobalDispatchContext, useGlobalStateContext, } from './context/GlobalMetadataContext';
|
|
7
7
|
export { GlobalTranslationContext, GlobalTranslationProvider, cacheTrans, SELECTED_TRANS_LANGUAGE, } from './context/GlobalTranslationProvider';
|
|
8
8
|
export { GlobalAlertMessageContextProvider, GlobalAlertMessageStateContext, GlobalAlertMessageDispatchContext, useGlobalAlertMessageDispatchContext, useGlobalAlertMessageStateContext, } from './context/GlobalAlertMessageContext';
|
|
9
|
-
export { CaseStatusContext, CaseStatusProvider } from './context/CaseStatusContext';
|
|
10
9
|
export * from './utils';
|
|
11
|
-
// dummy change for publish
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalMetadataHelpers.d.ts","sourceRoot":"","sources":["../../../src/reducers/GlobalMetadataHelpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,eAAO,MAAM,qBAAqB,GAAI,WAAW,MAAM,EAAE,KAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"GlobalMetadataHelpers.d.ts","sourceRoot":"","sources":["../../../src/reducers/GlobalMetadataHelpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,eAAO,MAAM,qBAAqB,GAAI,WAAW,MAAM,EAAE,KAAG,MAAM,EAUjE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,WAAW,SAAS,EAAE,KAAG,MAAM,EAMvD,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import isEmpty from 'lodash/isEmpty';
|
|
2
2
|
export const getProcessedCaseTypes = (caseTypes) => {
|
|
3
|
-
//
|
|
4
|
-
caseTypes = caseTypes.filter((caseType) =>
|
|
3
|
+
// move 'Other' to the end
|
|
4
|
+
caseTypes = caseTypes.filter((caseType) => {
|
|
5
|
+
if (caseType !== 'Other') {
|
|
6
|
+
return caseType;
|
|
7
|
+
}
|
|
8
|
+
});
|
|
5
9
|
caseTypes.push('Other');
|
|
6
10
|
return caseTypes;
|
|
7
11
|
};
|
|
@@ -5,9 +5,10 @@ import { IAccount, IPartnerManagedAccount } from '@cee-eng/hydrajs/@types/models
|
|
|
5
5
|
import { ISsoContact } from '@cee-eng/hydrajs/@types/models/contact';
|
|
6
6
|
import { IPreference } from '@cee-eng/hydrajs/@types/models/general';
|
|
7
7
|
import { IConfigurationResponse } from '@cee-eng/hydrajs/@types/models/maintenance';
|
|
8
|
+
import { ISEProductListParams } from '@cee-eng/hydrajs/@types/models/product';
|
|
8
9
|
import { IAction, IApiResponseDetails, IPortalJwtToken } from '@rh-support/types/shared';
|
|
9
10
|
import { UserAuth } from '@rh-support/user-permissions';
|
|
10
|
-
import {
|
|
11
|
+
import { ITroubleshootProductResponse } from '@rh-support/utils';
|
|
11
12
|
import { MutableRefObject } from 'react';
|
|
12
13
|
export declare enum UserPreferencesKeys {
|
|
13
14
|
caseSavedSearchFilters = "PCM-CaseSavedSearchFilters",
|
|
@@ -77,8 +78,7 @@ export declare enum GlobalMetadataReducerConstants {
|
|
|
77
78
|
setReferrerUrl = "setReferrerUrl",
|
|
78
79
|
getNoclusteridreasons = "getNoclusteridreasons",
|
|
79
80
|
setIsSharingHostnameswithRHt = "setIsSharingHostnameswithRHt",
|
|
80
|
-
setCaseListTraditionalSupportAgreed = "setCaseListTraditionalSupportAgreed"
|
|
81
|
-
setCaseRecordTypes = "setCaseRecordTypes"
|
|
81
|
+
setCaseListTraditionalSupportAgreed = "setCaseListTraditionalSupportAgreed"
|
|
82
82
|
}
|
|
83
83
|
export type ICaseType = string;
|
|
84
84
|
export type ICaseSeverity = string;
|
|
@@ -99,15 +99,12 @@ export interface IBookmarkedGroupIds {
|
|
|
99
99
|
namespaceId: number;
|
|
100
100
|
valueTypeId: number;
|
|
101
101
|
}
|
|
102
|
-
export interface ICaseRecordTypeMap {
|
|
103
|
-
[name: string]: string;
|
|
104
|
-
}
|
|
105
102
|
export interface IGlobalMetadataState {
|
|
106
103
|
allCaseTypes: IApiResponseDetails<ICaseType[]>;
|
|
107
104
|
allCaseSeverities: IApiResponseDetails<ICaseSeverity[]>;
|
|
108
105
|
allCaseStatuses: IApiResponseDetails<ICaseStatus[]>;
|
|
109
106
|
allProducts: IApiResponseDetails<ITroubleshootProductResponse>;
|
|
110
|
-
loggedInUsersAccount: IApiResponseDetails<
|
|
107
|
+
loggedInUsersAccount: IApiResponseDetails<Partial<IAccount>>;
|
|
111
108
|
loggedInUsersAccountNumber: IApiResponseDetails<string>;
|
|
112
109
|
loggedInUser: IApiResponseDetails<Partial<ISsoContact>>;
|
|
113
110
|
loggedInUserJwtToken: Partial<IPortalJwtToken>;
|
|
@@ -130,7 +127,6 @@ export interface IGlobalMetadataState {
|
|
|
130
127
|
accountCustomEmails: IApiResponseDetails<IAccountNotificationAddresses[]>;
|
|
131
128
|
referrerUrl: string;
|
|
132
129
|
caseNoClusterIdReasons: IApiResponseDetails<string[]>;
|
|
133
|
-
caseRecordTypes: IApiResponseDetails<ICaseRecordTypeMap>;
|
|
134
130
|
caseListTraditionalSupportAgreed: boolean;
|
|
135
131
|
}
|
|
136
132
|
export interface IGlobalMetadataPayloadType extends IGlobalMetadataState {
|
|
@@ -146,48 +142,19 @@ export declare const setReferrerUrl: (dispatch: GlobalMetadataReducerDispatchTyp
|
|
|
146
142
|
export declare const removeGroupedBookmarks: (dispatch: GlobalMetadataReducerDispatchType, allBookmarks: IBookmark[], removedAccountsId: number[]) => void;
|
|
147
143
|
export declare const removeWholeGroup: (dispatch: GlobalMetadataReducerDispatchType, allBookmarks: IBookmark[], rootBookmarIds: number[]) => void;
|
|
148
144
|
export declare const addEditbookmarks: (dispatch: GlobalMetadataReducerDispatchType, allBookmarks: IBookmark[], updatedAccounts: IBookmarkedAccounts, selectedAccounts: IBookmark[], group: string, accountsRemovedFromGroup?: IBookmark[]) => void;
|
|
149
|
-
export declare const fetchCaseTypes: (dispatch: GlobalMetadataReducerDispatchType,
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
export declare const
|
|
153
|
-
export declare const fetchCaseSeverities: (dispatch: GlobalMetadataReducerDispatchType, apolloClient: {
|
|
154
|
-
query: (options: any) => Promise<any>;
|
|
155
|
-
}) => Promise<void>;
|
|
156
|
-
export declare const fetchCaseSeveritiesHydra: (dispatch: GlobalMetadataReducerDispatchType, isSecureSupport: boolean) => Promise<void>;
|
|
157
|
-
type CaseDetailsDispatch = (action: {
|
|
158
|
-
type: string;
|
|
159
|
-
payload?: unknown;
|
|
160
|
-
}) => void;
|
|
161
|
-
type CaseDetailsApolloClient = {
|
|
162
|
-
query: (options: any) => Promise<any>;
|
|
163
|
-
};
|
|
164
|
-
type SetCaseAccountNumberFn = (dispatch: CaseDetailsDispatch, accountNumber: string, isLoggedInUsersAccount?: boolean, loggedInUserAccount?: Partial<IAccount>, apolloClient?: CaseDetailsApolloClient) => Promise<void>;
|
|
165
|
-
export declare const fetchCaseDetails: (caseDispatch: CaseDetailsDispatch, apolloClient: CaseDetailsApolloClient, caseNumber: string, setCaseAccountNumber?: SetCaseAccountNumberFn, includeSecureSupport?: boolean) => Promise<{
|
|
166
|
-
[x: string]: string | boolean;
|
|
167
|
-
}>;
|
|
168
|
-
export declare const fetchAllStatuses: (dispatch: GlobalMetadataReducerDispatchType, apolloClient: {
|
|
169
|
-
query: (options: any) => Promise<any>;
|
|
170
|
-
}) => Promise<void>;
|
|
171
|
-
export declare const fetchProducts: (dispatch: GlobalMetadataReducerDispatchType, apolloClient: {
|
|
172
|
-
query: (options: any) => Promise<any>;
|
|
173
|
-
}) => Promise<void>;
|
|
174
|
-
export declare const fetchCaseRecordTypes: (dispatch: GlobalMetadataReducerDispatchType, apolloClient: {
|
|
175
|
-
query: (options: any) => Promise<any>;
|
|
176
|
-
}) => Promise<import("@rh-support/utils").CaseRecordTypeMap>;
|
|
145
|
+
export declare const fetchCaseTypes: (dispatch: GlobalMetadataReducerDispatchType, isSecureSupport: boolean) => Promise<void>;
|
|
146
|
+
export declare const fetchCaseSeverities: (dispatch: GlobalMetadataReducerDispatchType, isSecureSupport: boolean) => Promise<void>;
|
|
147
|
+
export declare const fetchAllStatuses: (dispatch: GlobalMetadataReducerDispatchType, isSecureSupport: boolean) => Promise<void>;
|
|
148
|
+
export declare const fetchProducts: (dispatch: GlobalMetadataReducerDispatchType, ownerSSOUsername?: string, params?: ISEProductListParams) => Promise<void>;
|
|
177
149
|
export declare const setAllProducts: (dispatch: GlobalMetadataReducerDispatchType, allProducts: ITroubleshootProductResponse) => void;
|
|
178
|
-
export declare const fetchLoggedInUsersAccount: (dispatch: GlobalMetadataReducerDispatchType, token: Partial<IPortalJwtToken>, silent?: boolean
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
export declare const fetchLoggedInUser: (dispatch: GlobalMetadataReducerDispatchType, token: Partial<IPortalJwtToken>, pcmConfig: any, apolloClient?: {
|
|
182
|
-
query: (options: any) => Promise<any>;
|
|
183
|
-
}) => Promise<void>;
|
|
184
|
-
export declare const fetchLanguageMetadata: (dispatch: GlobalMetadataReducerDispatchType, apolloClient: {
|
|
185
|
-
query: (options: any) => Promise<any>;
|
|
186
|
-
}) => Promise<void>;
|
|
150
|
+
export declare const fetchLoggedInUsersAccount: (dispatch: GlobalMetadataReducerDispatchType, token: Partial<IPortalJwtToken>, silent?: boolean) => Promise<IAccount>;
|
|
151
|
+
export declare const fetchLoggedInUser: (dispatch: GlobalMetadataReducerDispatchType, token: Partial<IPortalJwtToken>, pcmConfig: any) => Promise<void>;
|
|
152
|
+
export declare const fetchLanguageMetadata: (dispatch: GlobalMetadataReducerDispatchType) => Promise<void>;
|
|
187
153
|
export declare const fetchInternalStatusMetadata: (dispatch: GlobalMetadataReducerDispatchType) => Promise<void>;
|
|
188
154
|
export declare const fetchCaseSbrsMetadata: (dispatch: GlobalMetadataReducerDispatchType) => Promise<void>;
|
|
189
|
-
export declare const fetchCaseGroupsForSSO: (dispatch: GlobalMetadataReducerDispatchType,
|
|
190
|
-
export declare const fetchCaseGroupsForAccount: (dispatch: GlobalMetadataReducerDispatchType,
|
|
155
|
+
export declare const fetchCaseGroupsForSSO: (dispatch: GlobalMetadataReducerDispatchType, ssoUserName: string) => Promise<ICaseGroup[]>;
|
|
156
|
+
export declare const fetchCaseGroupsForAccount: (dispatch: GlobalMetadataReducerDispatchType, accountNumber: string) => Promise<ICaseGroup[]>;
|
|
157
|
+
export declare const fetchCaseGroups: (dispatch: GlobalMetadataReducerDispatchType) => Promise<void>;
|
|
191
158
|
export declare const setCaseGroups: (dispatch: GlobalMetadataReducerDispatchType, groups: ICaseGroup[]) => void;
|
|
192
159
|
export declare const setLoggedInUserJwtToken: (dispatch: GlobalMetadataReducerDispatchType, loggedInUserJwtToken: Partial<IPortalJwtToken>) => void;
|
|
193
160
|
export declare const loadPCMConfig: (dispatch: GlobalMetadataReducerDispatchType) => Promise<IConfigurationResponse>;
|
|
@@ -208,6 +175,6 @@ export declare const fetchAccountCustomEmails: (dispatch: GlobalMetadataReducerD
|
|
|
208
175
|
export declare const setAccountCustomEmails: (dispatch: GlobalMetadataReducerDispatchType, accountCustomEmails: IAccountNotificationAddresses[]) => void;
|
|
209
176
|
export declare const fetchNoClusterIdReasonsMetadata: (dispatch: GlobalMetadataReducerDispatchType) => Promise<void>;
|
|
210
177
|
export declare const updateCaseListTraditionalSupportAgreed: (dispatch: GlobalMetadataReducerDispatchType, value: boolean) => void;
|
|
211
|
-
export declare const updateShareHostnameWithRHTState: (dispatch: GlobalMetadataReducerDispatchType, loggedInUsersAccount:
|
|
178
|
+
export declare const updateShareHostnameWithRHTState: (dispatch: GlobalMetadataReducerDispatchType, loggedInUsersAccount: Partial<IAccount>, shareHostnameWithRHT: boolean) => void;
|
|
212
179
|
export {};
|
|
213
180
|
//# sourceMappingURL=GlobalMetadataReducer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalMetadataReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/GlobalMetadataReducer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GlobalMetadataReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/GlobalMetadataReducer.ts"],"names":[],"mappings":"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"}
|