Skip to content

Commit cab8ef5

Browse files
committed
🐛(frontend) unmount components Analytics
`useAnalytics` hooks was dispatching methods that caused children components to be unmounted. By declaring the methods out of the hook, we can prevent the components from being unmounted.
1 parent 6627518 commit cab8ef5

File tree

1 file changed

+13
-17
lines changed

1 file changed

+13
-17
lines changed

src/frontend/apps/impress/src/libs/Analytics.tsx

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,16 @@ export abstract class AbstractAnalytic {
1616
Analytics.registerAnalytic(this);
1717
}
1818

19-
public abstract Provider(children?: ReactNode): JSX.Element;
19+
public abstract Provider(children: ReactNode): JSX.Element;
2020

2121
public abstract trackEvent(evt: AnalyticEvent): void;
2222

2323
public abstract isFeatureFlagActivated(flagName: string): boolean;
2424
}
2525

2626
export class Analytics {
27-
private static instance: Analytics;
2827
private static analytics: AbstractAnalytic[] = [];
2928

30-
private constructor() {}
31-
32-
public static getInstance(): Analytics {
33-
if (!Analytics.instance) {
34-
Analytics.instance = new Analytics();
35-
}
36-
37-
return Analytics.instance;
38-
}
39-
4029
public static clearAnalytics(): void {
4130
Analytics.analytics = [];
4231
}
@@ -74,12 +63,19 @@ export class Analytics {
7463
}
7564
}
7665

66+
const AnalyticsProvider = ({ children }: PropsWithChildren) => {
67+
return Analytics.providers(children);
68+
};
69+
70+
const isFeatureFlagActivated = (flagName: string) =>
71+
Analytics.isFeatureFlagActivated(flagName);
72+
73+
const trackEvent = (evt: AnalyticEvent) => Analytics.trackEvent(evt);
74+
7775
export const useAnalytics = () => {
7876
return {
79-
AnalyticsProvider: ({ children }: PropsWithChildren) =>
80-
Analytics.providers(children),
81-
isFeatureFlagActivated: (flagName: string) =>
82-
Analytics.isFeatureFlagActivated(flagName),
83-
trackEvent: (evt: AnalyticEvent) => Analytics.trackEvent(evt),
77+
AnalyticsProvider,
78+
isFeatureFlagActivated,
79+
trackEvent,
8480
};
8581
};

0 commit comments

Comments
 (0)