| import { usePlausible } from 'next-plausible'; | |
| import { useCallback } from 'react'; | |
| import { usePostHog } from 'posthog-js/react'; | |
| import { useVariables } from '@gitroom/react/helpers/variable.context'; | |
| import { useUser } from '@gitroom/frontend/components/layout/user.context'; | |
| export const useFireEvents = () => { | |
| const { billingEnabled } = useVariables(); | |
| const plausible = usePlausible(); | |
| const posthog = usePostHog(); | |
| const user = useUser(); | |
| return useCallback( | |
| (name: string, props?: any) => { | |
| if (!billingEnabled) { | |
| return; | |
| } | |
| if (user) { | |
| posthog.identify(user.id, { email: user.email, name: user.name }); | |
| } | |
| posthog.capture(name, props); | |
| plausible(name, { props }); | |
| }, | |
| [user] | |
| ); | |
| }; | |