Update selected item color in Pass menu
[ProtonMail-WebClient.git] / packages / pass / hooks / useTelemetryEvent.ts
blobd8cef4635721b63d77056d1537d0be0efeb68b3a
1 import { useEffect } from 'react';
3 import { usePassCore } from '@proton/pass/components/Core/PassCoreProvider';
4 import type { TelemetryEvent, TelemetryEventName, TelemetryPlatform } from '@proton/pass/types/data/telemetry';
5 import isTruthy from '@proton/utils/isTruthy';
7 /** Pushes the specified telemetry event when the provided
8  * dependency array is truthy. Passing an empty dependency
9  * array will push the event when the component mounts */
10 export const useTelemetryEvent = <T extends TelemetryEventName>(
11     Event: T,
12     Values: TelemetryEvent<T>['Values'],
13     Dimensions: TelemetryEvent<T>['Dimensions'],
14     platform?: TelemetryPlatform
15 ) =>
16     function useTelemetryEventEffect(deps: boolean[]) {
17         const { onTelemetry } = usePassCore();
19         useEffect(() => {
20             if (deps.every(isTruthy)) onTelemetry(Event, Values, Dimensions, platform);
21         }, deps);
22     };