-
Notifications
You must be signed in to change notification settings - Fork 126
/
useDatadogRum.jsx
43 lines (38 loc) · 1.08 KB
/
useDatadogRum.jsx
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
import { useEffect } from 'react';
import { datadogRum } from '@datadog/browser-rum';
import { environment } from '@department-of-veterans-affairs/platform-utilities/exports';
const initializeDatadogRum = config => {
const datadogRumConfig = config;
if (!datadogRumConfig.env) {
datadogRumConfig.env = environment.vspEnvironment();
}
datadogRum.init(datadogRumConfig);
datadogRum.startSessionReplayRecording();
};
const setRumUser = user => {
if (user.loggedIn && environment.isStaging()) {
datadogRum.setUser({
id: user.accountUuid || 'no-account-uuid-found',
});
}
};
const useDatadogRum = (config, userInfo) => {
useEffect(
() => {
if (
// Prevent RUM from running on local/CI environments.
environment.BASE_URL.indexOf('localhost') < 0 &&
// Prevent re-initializing the SDK.
!window.DD_RUM?.getInitConfiguration() &&
!window.Mocha
) {
initializeDatadogRum(config);
if (userInfo) {
setRumUser(userInfo);
}
}
},
[config, userInfo],
);
};
export { useDatadogRum };