Skip to content

Commit 5f4a5bb

Browse files
authored
Add workspaceId to intercom custom attributes (#9489)
* Add workspaceId to intercom custom attributes * Rename to workspace_id
1 parent 0d55835 commit 5f4a5bb

File tree

5 files changed

+39
-14
lines changed

5 files changed

+39
-14
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from "./useIntercom";
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,40 @@
11
import { useEffect } from "react";
2-
import { useIntercom as useIntercomProvider } from "react-use-intercom";
2+
import {
3+
useIntercom as useIntercomProvider,
4+
IntercomContextValues,
5+
} from "react-use-intercom";
36

47
import { useCurrentUser } from "packages/cloud/services/auth/AuthService";
8+
import { useAnalytics } from "hooks/services/Analytics";
9+
10+
export const useIntercom = (): IntercomContextValues => {
11+
const intercomContextValues = useIntercomProvider();
512

6-
export const useIntercom = (): void => {
713
const user = useCurrentUser();
8-
const { boot, shutdown } = useIntercomProvider();
14+
const { analyticsContext } = useAnalytics();
915

1016
useEffect(() => {
11-
boot({
17+
intercomContextValues.boot({
1218
email: user.email,
1319
name: user.name,
1420
userId: user.userId,
1521
userHash: user.intercomHash,
22+
23+
customAttributes: {
24+
workspace_id: analyticsContext.workspaceId,
25+
},
1626
});
1727

18-
return () => shutdown();
28+
return () => intercomContextValues.shutdown();
1929
}, [user]);
30+
31+
useEffect(() => {
32+
intercomContextValues.update({
33+
customAttributes: {
34+
workspace_id: analyticsContext.workspace_id,
35+
},
36+
});
37+
}, [analyticsContext.workspace_id]);
38+
39+
return intercomContextValues;
2040
};

airbyte-webapp/src/packages/cloud/views/credits/CreditsPage/components/CreditsTitle.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React from "react";
22
import { FormattedMessage } from "react-intl";
3-
import { useIntercom } from "react-use-intercom";
3+
4+
import { useIntercom } from "packages/cloud/services/thirdParty/intercom";
45

56
import PageTitle from "components/PageTitle";
67
import { Button } from "components/base";

airbyte-webapp/src/packages/cloud/views/layout/SideBar/SideBar.tsx

+3-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import { FormattedMessage, FormattedNumber } from "react-intl";
44
import { NavLink } from "react-router-dom";
55
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
66
import { faStar } from "@fortawesome/free-solid-svg-icons";
7-
import { useIntercom } from "react-use-intercom";
7+
8+
import { useIntercom } from "packages/cloud/services/thirdParty/intercom";
89

910
import { CloudRoutes } from "packages/cloud/cloudRoutes";
1011

@@ -26,10 +27,7 @@ import ResourcesPopup, {
2627
Item,
2728
} from "views/layout/SideBar/components/ResourcesPopup";
2829
import { RoutePaths } from "pages/routes";
29-
import {
30-
FeatureItem,
31-
WithFeature,
32-
} from "../../../../../hooks/services/Feature";
30+
import { FeatureItem, WithFeature } from "hooks/services/Feature";
3331

3432
const CreditsIcon = styled(FontAwesomeIcon)`
3533
font-size: 21px;

airbyte-webapp/src/services/workspaces/WorkspacesService.tsx

+8-3
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,17 @@ export const useWorkspaceService = (): Context => {
6666
return workspaceService;
6767
};
6868

69-
export const useCurrentWorkspace = (): Workspace => {
69+
export const useCurrentWorkspaceId = (): string => {
7070
const { params } = useRouter<unknown, { workspaceId: string }>();
71-
const { workspaceId } = params;
71+
72+
return params.workspaceId;
73+
};
74+
75+
export const useCurrentWorkspace = (): Workspace => {
76+
const workspaceId = useCurrentWorkspaceId();
7277

7378
return useResource(WorkspaceResource.detailShape(), {
74-
workspaceId: workspaceId,
79+
workspaceId,
7580
});
7681
};
7782

0 commit comments

Comments
 (0)