-
Notifications
You must be signed in to change notification settings - Fork 214
Expand file tree
/
Copy pathuse-miaw.js
More file actions
93 lines (88 loc) · 3.07 KB
/
use-miaw.js
File metadata and controls
93 lines (88 loc) · 3.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/*
* Copyright (c) 2024, salesforce.com, inc.
* All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
import {useEffect} from 'react'
const onClient = typeof window !== 'undefined'
/**
* Initializes the embedded messaging service with the provided configuration.
*
* @param {string} salesforceOrgId - Salesforce organization ID
* @param {string} embeddedServiceDeploymentName - Name of the embedded service deployment
* @param {string} embeddedServiceDeploymentUrl - URL of the embedded service deployment
* @param {string} scrt2Url - SCRT2 URL for the embedded messaging service
* @param {string} locale - Locale for the embedded messaging service
*/
const initEmbeddedMessaging = (
salesforceOrgId,
embeddedServiceDeploymentName,
embeddedServiceDeploymentUrl,
scrt2Url,
locale
) => {
try {
if (
onClient &&
window.embeddedservice_bootstrap &&
window.embeddedservice_bootstrap.settings
) {
window.embeddedservice_bootstrap.settings.language = locale
window.embeddedservice_bootstrap.settings.disableStreamingResponses = true
window.embeddedservice_bootstrap.settings.enableUserInputForConversationWithBot = false
window.embeddedservice_bootstrap.init(
salesforceOrgId,
embeddedServiceDeploymentName,
embeddedServiceDeploymentUrl,
{
scrt2URL: scrt2Url
}
)
}
} catch (err) {
console.error('Error initializing Embedded Messaging: ', err)
}
}
/**
* Custom hook that initializes embedded messaging when the script is loaded.
*
* @param {Object} scriptLoadStatus - Status of the embedded messaging script loading
* @param {string} salesforceOrgId - Salesforce organization ID
* @param {string} embeddedServiceDeploymentName - Name of the embedded service deployment
* @param {string} embeddedServiceDeploymentUrl - URL of the embedded service deployment
* @param {string} scrt2Url - SCRT2 URL for the embedded messaging service
* @param {string} locale - Locale for the embedded messaging service
* @param {string} refreshToken - Refresh token for the embedded messaging service
*/
const useMiaw = (
scriptLoadStatus,
salesforceOrgId,
embeddedServiceDeploymentName,
embeddedServiceDeploymentUrl,
scrt2Url,
locale,
refreshToken
) => {
useEffect(() => {
if (scriptLoadStatus.loaded && !scriptLoadStatus.error) {
initEmbeddedMessaging(
salesforceOrgId,
embeddedServiceDeploymentName,
embeddedServiceDeploymentUrl,
scrt2Url,
locale,
refreshToken
)
}
}, [
scriptLoadStatus,
salesforceOrgId,
embeddedServiceDeploymentName,
embeddedServiceDeploymentUrl,
scrt2Url,
locale,
refreshToken
])
}
export default useMiaw