Skip to content

Commit ff0a8f2

Browse files
letiescancianorobbinhan
authored andcommitted
🪟 🔧 Add proper page view events for Segment (airbytehq#16220)
* 🪟 🔧 Add proper page view events for Segment
1 parent cdc2694 commit ff0a8f2

File tree

42 files changed

+131
-108
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+131
-108
lines changed

airbyte-webapp/package-lock.json

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

airbyte-webapp/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"@monaco-editor/react": "^4.4.5",
3535
"@sentry/react": "^6.19.6",
3636
"@sentry/tracing": "^6.19.6",
37+
"@types/segment-analytics": "^0.0.34",
3738
"classnames": "^2.3.1",
3839
"dayjs": "^1.11.3",
3940
"firebase": "^9.8.2",

airbyte-webapp/src/config/types.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { SegmentAnalytics } from "core/analytics/types";
2-
31
import { OutboundLinks } from "./links";
42

53
declare global {
@@ -14,7 +12,7 @@ declare global {
1412
REACT_APP_INTEGRATION_DOCS_URLS?: string;
1513
SEGMENT_TOKEN?: string;
1614
LAUNCHDARKLY_KEY?: string;
17-
analytics: SegmentAnalytics;
15+
analytics: SegmentAnalytics.AnalyticsJS;
1816
}
1917
}
2018

airbyte-webapp/src/core/analytics/AnalyticsService.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,18 @@ describe("AnalyticsService", () => {
1010
identify: jest.fn(),
1111
page: jest.fn(),
1212
reset: jest.fn(),
13+
user: jest.fn(),
14+
setAnonymousId: jest.fn(),
15+
init: jest.fn(),
16+
use: jest.fn(),
17+
addIntegration: jest.fn(),
18+
load: jest.fn(),
19+
trackLink: jest.fn(),
20+
trackForm: jest.fn(),
21+
ready: jest.fn(),
22+
debug: jest.fn(),
23+
on: jest.fn(),
24+
timeout: jest.fn(),
1325
};
1426
});
1527

airbyte-webapp/src/core/analytics/AnalyticsService.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { Action, EventParams, Namespace, SegmentAnalytics } from "./types";
1+
import { Action, EventParams, Namespace } from "./types";
22

33
export class AnalyticsService {
44
constructor(private context: Record<string, unknown>, private version?: string) {}
55

6-
private getSegmentAnalytics = (): SegmentAnalytics | undefined => window.analytics;
6+
private getSegmentAnalytics = (): SegmentAnalytics.AnalyticsJS | undefined => window.analytics;
77

88
alias = (newId: string): void => this.getSegmentAnalytics()?.alias?.(newId);
99

airbyte-webapp/src/core/analytics/types.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,3 @@
1-
export interface SegmentAnalytics {
2-
page: (name?: string) => void;
3-
reset: () => void;
4-
alias: (newId: string) => void;
5-
track: (name: string, properties: Record<string, unknown>) => void;
6-
identify: (userId?: string, traits?: Record<string, unknown>) => void;
7-
group: (organisationId: string, traits: Record<string, unknown>) => void;
8-
}
9-
101
export const enum Namespace {
112
SOURCE = "Source",
123
DESTINATION = "Destination",
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
export * from "./useAnalyticsService";
2+
export * from "./pageTrackingCodes";

airbyte-webapp/src/hooks/services/Analytics/pageNameUtils.tsx

Lines changed: 0 additions & 61 deletions
This file was deleted.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
export enum PageTrackingCodes {
2+
SIGNUP = "Auth.Signup",
3+
LOGIN = "Auth.Login",
4+
RESET_PASSWORD = "Auth.ResetPassword",
5+
VERIFY_EMAIL = "Auth.VerifyEmail",
6+
ONBOARDING = "Onboarding",
7+
SOURCE_NEW = "Source.New",
8+
SOURCE_LIST = "Source.List",
9+
SOURCE_ITEM = "Source.Item",
10+
SOURCE_ITEM_SETTINGS = "Source.Item.Settings",
11+
DESTINATION_NEW = "Destination.New",
12+
DESTINATION_LIST = "Destination.List",
13+
DESTINATION_ITEM = "Destination.Item",
14+
DESTINATION_ITEM_SETTINGS = "Destination.Item.Settings",
15+
CONNECTIONS_NEW = "Connections.New",
16+
CONNECTIONS_LIST = "Connections.List",
17+
CONNECTIONS_ITEM = "Connections.Item",
18+
CONNECTIONS_ITEM_STATUS = "Connections.Item.Status",
19+
CONNECTIONS_ITEM_TRANSFORMATION = "Connections.Item.TransformationView",
20+
CONNECTIONS_ITEM_REPLICATION = "Connections.Item.ReplicationView",
21+
CONNECTIONS_ITEM_SETTINGS = "Connections.Item.Settings",
22+
SETTINGS_ACCOUNT = "Settings.Account",
23+
SETTINGS_WORKSPACE = "Settings.Workspace",
24+
SETTINGS_DESTINATION = "Settings.Destination",
25+
SETTINGS_SOURCE = "Settings.Source",
26+
SETTINGS_CONFIGURATION = "Settings.Configuration",
27+
SETTINGS_NOTIFICATION = "Settings.Notifications",
28+
SETTINGS_ACCESS_MANAGEMENT = "Settings.AccessManagement",
29+
SETTINGS_METRICS = "Settings.Metrics",
30+
CREDITS = "Credits",
31+
WORKSPACES = "Workspaces",
32+
PREFERENCES = "Preferences",
33+
}

airbyte-webapp/src/hooks/services/Analytics/useTrackPageAnalytics.tsx

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)