Skip to content

Commit

Permalink
📈 Capture logout event + merge set and identify calls (#1211)
Browse files Browse the repository at this point in the history
Signed-off-by: Luke Vella <me@lukevella.com>
  • Loading branch information
lukevella authored Jul 21, 2024
1 parent c126cbd commit ba3008b
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 16 deletions.
25 changes: 20 additions & 5 deletions apps/web/src/app/components/logout-button.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,29 @@
"use client";
import { Button, ButtonProps } from "@rallly/ui/button";
import { signOut } from "next-auth/react";

import { usePostHog } from "@/utils/posthog";

export function LogoutButton({
children,
onClick,
...rest
}: React.PropsWithChildren<ButtonProps>) {
const posthog = usePostHog();
return (
<form action="/auth/logout" method="POST">
<Button {...rest} type="submit">
{children}
</Button>
</form>
<Button
{...rest}
onClick={async (e) => {
onClick?.(e);
posthog?.capture("logout");
posthog?.reset();
signOut({
redirect: true,
callbackUrl: "/login",
});
}}
>
{children}
</Button>
);
}
13 changes: 9 additions & 4 deletions apps/web/src/contexts/posthog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { PostHogProvider as Provider, usePostHog } from "posthog-js/react";
import React from "react";
import { useMount } from "react-use";

import { useTranslation } from "@/app/i18n/client";
import { useUser } from "@/components/user-provider";
import { env } from "@/env";

Expand Down Expand Up @@ -48,14 +49,18 @@ function usePostHogPageView() {

export function PostHogProvider(props: PostHogProviderProps) {
const { user } = useUser();
const { i18n } = useTranslation();

usePostHogPageView();

useMount(() => {
if (user.email) {
posthog.identify(user.id);
posthog.people.set({
$email: user.email,
$name: user.name,
posthog.identify(user.id, {
email: user.email,
name: user.name,
tier: user.tier,
timeZone: user.timeZone,
locale: i18n.language,
});
}
});
Expand Down
7 changes: 0 additions & 7 deletions apps/web/src/utils/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,6 @@ const getAuthOptions = (...args: GetServerSessionParams) =>
providers: providers,
pages: {
signIn: "/login",
signOut: "/logout",
error: "/auth/error",
},
events: {
Expand All @@ -193,12 +192,6 @@ const getAuthOptions = (...args: GetServerSessionParams) =>
},
});
},
signOut({ session }) {
posthog?.capture({
distinctId: session.user.id,
event: "logout",
});
},
},
callbacks: {
async signIn({ user, email, profile }) {
Expand Down

0 comments on commit ba3008b

Please sign in to comment.