Skip to content

Commit

Permalink
feat(mobile): add auth event data (#307)
Browse files Browse the repository at this point in the history
  • Loading branch information
duongdev committed Sep 11, 2024
1 parent c62a312 commit 1bfd0b4
Show file tree
Hide file tree
Showing 3 changed files with 101 additions and 16 deletions.
22 changes: 18 additions & 4 deletions apps/mobile/app/(auth)/login.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,30 @@ export default function LoginScreen() {
const posthog = usePostHog()

const handleSignedUp = useCallback(
(strategy: Strategy, userId?: string) => {
posthog.identify(userId)
(
strategy: Strategy,
userData: {
id?: string
email?: string
name?: string
},
) => {
posthog.identify(userData.id)
posthog.capture('user_signed_up', { strategy })
},
[posthog],
)

const handleSignedIn = useCallback(
(strategy: Strategy, userId?: string) => {
posthog.identify(userId)
(
strategy: Strategy,
userData: {
id?: string
email?: string
name?: string
},
) => {
posthog.identify(userData.id)
posthog.capture('user_signed_up', { strategy })
},
[posthog],
Expand Down
30 changes: 26 additions & 4 deletions apps/mobile/components/auth/auth-email.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,22 @@ export function AuthEmail({
onSignedUp,
onSignedIn,
}: {
onSignedUp: (strategy: 'email_code', userId?: string) => void
onSignedIn: (strategy: 'email_code', userId?: string) => void
onSignedUp: (
strategy: 'email_code',
userData: {
id?: string
email?: string
name?: string
},
) => void
onSignedIn: (
strategy: 'email_code',
userData: {
id?: string
email?: string
name?: string
},
) => void
}) {
const { i18n } = useLingui()

Expand Down Expand Up @@ -114,7 +128,11 @@ export function AuthEmail({
email: signUpAttempt.emailAddress!,
name: signUpAttempt.firstName ?? '',
})
onSignedUp('email_code', signUpAttempt.id)
onSignedUp('email_code', {
id: signUpAttempt.id,
email: signUpAttempt.emailAddress ?? undefined,
name: signUpAttempt.firstName ?? undefined,
})
} else {
console.error(signUpAttempt)
}
Expand All @@ -126,7 +144,11 @@ export function AuthEmail({
if (signInAttempt.status === 'complete') {
await setActiveSignIn({ session: signInAttempt.createdSessionId })
// signed in
onSignedIn('email_code', signInAttempt.id)
onSignedIn('email_code', {
id: signInAttempt.id,
email: authEmailForm.getValues().emailAddress,
name: signInAttempt.userData.firstName ?? undefined,
})
} else {
console.error(signInAttempt)
}
Expand Down
65 changes: 57 additions & 8 deletions apps/mobile/components/auth/auth-social.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,22 @@ type AuthSocialProps = {
label: string
icon: React.ComponentType<SvgProps>
strategy: Strategy
onSignedUp: (strategy: Strategy, userId?: string) => void
onSignedIn: (strategy: Strategy, userId?: string) => void
onSignedUp: (
strategy: Strategy,
userData: {
id?: string
email?: string
name?: string
},
) => void
onSignedIn: (
strategy: Strategy,
userData: {
id?: string
email?: string
name?: string
},
) => void
}

export function AuthSocial({
Expand All @@ -42,12 +56,19 @@ export function AuthSocial({
name: signUp.firstName ?? '',
})

onSignedUp(strategy, signUp.id)
onSignedUp(strategy, {
id: signUp.id,
email: signUp.emailAddress ?? undefined,
name: signUp.firstName ?? undefined,
})
}, 1000)
}
} else {
// Use signIn or signUp for next steps such as MFA
onSignedIn(strategy, signIn?.id)
onSignedIn(strategy, {
id: signIn?.id,
name: signIn?.userData.firstName,
})
}
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
} catch (err: any) {
Expand All @@ -69,8 +90,22 @@ export function GoogleAuthButton({
onSignedUp,
onSignedIn,
}: {
onSignedUp: (strategy: Strategy, userId?: string) => void
onSignedIn: (strategy: Strategy, userId?: string) => void
onSignedUp: (
strategy: Strategy,
userData: {
id?: string
email?: string
name?: string
},
) => void
onSignedIn: (
strategy: Strategy,
userData: {
id?: string
email?: string
name?: string
},
) => void
}) {
const { i18n } = useLingui()
return (
Expand All @@ -88,8 +123,22 @@ export function AppleAuthButton({
onSignedUp,
onSignedIn,
}: {
onSignedUp: (strategy: Strategy, userId?: string) => void
onSignedIn: (strategy: Strategy, userId?: string) => void
onSignedUp: (
strategy: Strategy,
userData: {
id?: string
email?: string
name?: string
},
) => void
onSignedIn: (
strategy: Strategy,
userData: {
id?: string
email?: string
name?: string
},
) => void
}) {
const { i18n } = useLingui()
return (
Expand Down

0 comments on commit 1bfd0b4

Please sign in to comment.