diff --git a/src/Lifecycle.ts b/src/Lifecycle.ts index b0a521d886..e48fd52cb1 100644 --- a/src/Lifecycle.ts +++ b/src/Lifecycle.ts @@ -48,7 +48,7 @@ import { Jitsi } from "./widgets/Jitsi"; import { SSO_HOMESERVER_URL_KEY, SSO_ID_SERVER_URL_KEY, SSO_IDP_ID_KEY } from "./BasePlatform"; import ThreepidInviteStore from "./stores/ThreepidInviteStore"; import CountlyAnalytics from "./CountlyAnalytics"; -import { getAnalytics } from "./PosthogAnalytics"; +import { PosthogAnalytics } from "./PosthogAnalytics"; import CallHandler from './CallHandler'; import LifecycleCustomisations from "./customisations/Lifecycle"; import ErrorDialog from "./components/views/dialogs/ErrorDialog"; @@ -574,7 +574,7 @@ async function doSetLoggedIn( await abortLogin(); } - getAnalytics().updateAnonymityFromSettings(credentials.userId); + PosthogAnalytics.instance.updateAnonymityFromSettings(credentials.userId); Analytics.setLoggedIn(credentials.guest, credentials.homeserverUrl); @@ -703,7 +703,7 @@ export function logout(): void { CountlyAnalytics.instance.enable(/* anonymous = */ true); } - getAnalytics().logout(); + PosthogAnalytics.instance.logout(); if (MatrixClientPeg.get().isGuest()) { // logout doesn't work for guest sessions diff --git a/src/PosthogAnalytics.ts b/src/PosthogAnalytics.ts index c8e156f2fa..314bd150d6 100644 --- a/src/PosthogAnalytics.ts +++ b/src/PosthogAnalytics.ts @@ -149,7 +149,7 @@ export class PosthogAnalytics { private static _instance = null; private platformSuperProperties = {}; - public static instance(): PosthogAnalytics { + public static get instance(): PosthogAnalytics { if (!this._instance) { this._instance = new PosthogAnalytics(posthog); } @@ -362,7 +362,3 @@ export class PosthogAnalytics { } } } - -export function getAnalytics(): PosthogAnalytics { - return PosthogAnalytics.instance(); -} diff --git a/src/components/structures/MatrixChat.tsx b/src/components/structures/MatrixChat.tsx index 6a1eae7e72..60c78b5f9e 100644 --- a/src/components/structures/MatrixChat.tsx +++ b/src/components/structures/MatrixChat.tsx @@ -107,7 +107,7 @@ import UIStore, { UI_EVENTS } from "../../stores/UIStore"; import SoftLogout from './auth/SoftLogout'; import { makeRoomPermalink } from "../../utils/permalinks/Permalinks"; import { copyPlaintext } from "../../utils/strings"; -import { getAnalytics } from '../../PosthogAnalytics'; +import { PosthogAnalytics } from '../../PosthogAnalytics'; /** constants for MatrixChat.state.view */ export enum Views { @@ -389,9 +389,8 @@ export default class MatrixChat extends React.PureComponent { Analytics.enable(); } - const analytics = getAnalytics(); - analytics.updateAnonymityFromSettings(); - analytics.updatePlatformSuperProperties(); + PosthogAnalytics.instance.updateAnonymityFromSettings(); + PosthogAnalytics.instance.updatePlatformSuperProperties(); CountlyAnalytics.instance.enable(/* anonymous = */ true); } @@ -449,7 +448,7 @@ export default class MatrixChat extends React.PureComponent { const durationMs = this.stopPageChangeTimer(); Analytics.trackPageChange(durationMs); CountlyAnalytics.instance.trackPageChange(durationMs); - getAnalytics().trackPageView(durationMs); + PosthogAnalytics.instance.trackPageView(durationMs); } if (this.focusComposer) { dis.fire(Action.FocusSendMessageComposer); diff --git a/src/components/views/auth/Welcome.tsx b/src/components/views/auth/Welcome.tsx index 7c405b0835..921eba114f 100644 --- a/src/components/views/auth/Welcome.tsx +++ b/src/components/views/auth/Welcome.tsx @@ -25,7 +25,7 @@ import SettingsStore from "../../../settings/SettingsStore"; import { UIFeature } from "../../../settings/UIFeature"; import CountlyAnalytics from "../../../CountlyAnalytics"; import { replaceableComponent } from "../../../utils/replaceableComponent"; -import { getAnalytics, IWelcomeScreenLoad } from "../../../PosthogAnalytics"; +import { PosthogAnalytics, IWelcomeScreenLoad } from "../../../PosthogAnalytics"; import LanguageSelector from "./LanguageSelector"; // translatable strings for Welcome pages @@ -76,6 +76,6 @@ export default class Welcome extends React.PureComponent { } componentDidMount() { - getAnalytics().trackAnonymousEvent("welcome_screen_load"); + PosthogAnalytics.instance.trackAnonymousEvent("welcome_screen_load"); } } diff --git a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js index c24af6cb0d..25b0b86cb1 100644 --- a/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js +++ b/src/components/views/settings/tabs/user/SecurityUserSettingsTab.js @@ -36,7 +36,7 @@ import { UIFeature } from "../../../../../settings/UIFeature"; import { isE2eAdvancedPanelPossible } from "../../E2eAdvancedPanel"; import CountlyAnalytics from "../../../../../CountlyAnalytics"; import { replaceableComponent } from "../../../../../utils/replaceableComponent"; -import { getAnalytics } from "../../../../../PosthogAnalytics"; +import { PosthogAnalytics } from "../../../../../PosthogAnalytics"; export class IgnoredUser extends React.Component { static propTypes = { @@ -107,7 +107,7 @@ export default class SecurityUserSettingsTab extends React.Component { _updateAnalytics = (checked) => { checked ? Analytics.enable() : Analytics.disable(); CountlyAnalytics.instance.enable(/* anonymous = */ !checked); - getAnalytics().updateAnonymityFromSettings(MatrixClientPeg.get().getUserId()); + PosthogAnalytics.instance.updateAnonymityFromSettings(MatrixClientPeg.get().getUserId()); }; _onExportE2eKeysClicked = () => { diff --git a/src/settings/controllers/PseudonymousAnalyticsController.ts b/src/settings/controllers/PseudonymousAnalyticsController.ts index d55efe3c74..a82b9685ef 100644 --- a/src/settings/controllers/PseudonymousAnalyticsController.ts +++ b/src/settings/controllers/PseudonymousAnalyticsController.ts @@ -16,11 +16,11 @@ limitations under the License. import SettingController from "./SettingController"; import { SettingLevel } from "../SettingLevel"; -import { getAnalytics } from "../../PosthogAnalytics"; +import { PosthogAnalytics } from "../../PosthogAnalytics"; import { MatrixClientPeg } from "../../MatrixClientPeg"; export default class PseudonymousAnalyticsController extends SettingController { public onChange(level: SettingLevel, roomId: string, newValue: any) { - getAnalytics().updateAnonymityFromSettings(MatrixClientPeg.get().getUserId()); + PosthogAnalytics.instance.updateAnonymityFromSettings(MatrixClientPeg.get().getUserId()); } }