Skip to content

Commit 9bfc4d8

Browse files
committed
Added PostHog events to dev onboarding
1 parent 7054115 commit 9bfc4d8

File tree

7 files changed

+48
-51
lines changed

7 files changed

+48
-51
lines changed

apps/web/src/app/(onboarding)/onboarding/choice/page.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { ROUTES } from '$/services/routes'
1212
import { useHover } from '@latitude-data/web-ui/browser'
1313
import { cn } from '@latitude-data/web-ui/utils'
1414

15-
type OnboardingChoice = 'scratch' | 'existing' | null
15+
type OnboardingChoice = 'product_engineer' | 'developer' | null
1616

1717
function ChoiceCard({
1818
icon,
@@ -66,12 +66,12 @@ export default function OnboardingChoicePage() {
6666
})
6767

6868
const handleStartFromScratch = useCallback(() => {
69-
setOnboardingChoice('scratch')
69+
setOnboardingChoice('product_engineer')
7070
router.push(ROUTES.onboarding.promptEngineering.pasteYourPrompt)
7171
}, [setOnboardingChoice, router])
7272

7373
const handleExistingProject = useCallback(() => {
74-
setOnboardingChoice('existing')
74+
setOnboardingChoice('developer')
7575
router.push(ROUTES.onboarding.install)
7676
}, [setOnboardingChoice, router])
7777

apps/web/src/app/(onboarding)/onboarding/install/_components/InviteDeveloperModal.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import { Text } from '@latitude-data/web-ui/atoms/Text'
1515
import { TableSkeleton } from '@latitude-data/web-ui/molecules/TableSkeleton'
1616
import useUsers from '$/stores/users'
1717
import useCurrentWorkspace from '$/stores/currentWorkspace'
18+
import useLatitudeAction from '$/hooks/useLatitudeAction'
19+
import { publishEventAction } from '$/actions/events/publishEventAction'
1820
import { useCallback, useState } from 'react'
1921

2022
function NewUserRow({
@@ -75,10 +77,17 @@ export default function InviteDeveloperModal({
7577
}) {
7678
const { data: workspace } = useCurrentWorkspace()
7779
const { data: users, isLoading, invite } = useUsers()
80+
const { execute: publishEvent } = useLatitudeAction(publishEventAction)
7881

7982
const onInviteUser = useCallback(
80-
(name: string, email: string) => invite({ name, email }),
81-
[invite],
83+
(name: string, email: string) => {
84+
invite({ name, email })
85+
publishEvent({
86+
eventType: 'onboardingUserInvited',
87+
payload: { invitedEmail: email },
88+
})
89+
},
90+
[invite, publishEvent],
8291
)
8392

8493
return (

apps/web/src/app/(onboarding)/onboarding/install/_lib/OnboardingInstallProvider.tsx

Lines changed: 0 additions & 37 deletions
This file was deleted.

apps/web/src/app/(onboarding)/onboarding/install/layout.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { ReactNode } from 'react'
44
import { getOnboardingResources } from '$/data-access/onboarding'
55
import { redirect } from 'next/navigation'
66
import { ROUTES } from '$/services/routes'
7-
import { OnboardingInstallProvider } from './_lib/OnboardingInstallProvider'
7+
import { ProjectProvider } from '$/app/providers/ProjectProvider'
88

99
export default async function OnboardingInstallLayout({
1010
children,
@@ -16,9 +16,5 @@ export default async function OnboardingInstallLayout({
1616
return redirect(ROUTES.onboarding.choice)
1717
}
1818

19-
return (
20-
<OnboardingInstallProvider project={project}>
21-
{children}
22-
</OnboardingInstallProvider>
23-
)
19+
return <ProjectProvider project={project}>{children}</ProjectProvider>
2420
}

apps/web/src/app/(onboarding)/onboarding/install/page.tsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
'use client'
22

3-
import { useState, useCallback } from 'react'
3+
import { useState, useCallback, useEffect } from 'react'
44
import { Button } from '@latitude-data/web-ui/atoms/Button'
55
import { Icon } from '@latitude-data/web-ui/atoms/Icons'
66
import { Text } from '@latitude-data/web-ui/atoms/Text'
77
import useLatitudeAction from '$/hooks/useLatitudeAction'
88
import { skipOnboardingAction } from '$/actions/onboarding/skip'
9+
import { publishEventAction } from '$/actions/events/publishEventAction'
910
import InviteDeveloperModal from './_components/InviteDeveloperModal'
1011
import {
1112
useLocalStorage,
1213
AppLocalStorage,
1314
} from '@latitude-data/web-ui/hooks/useLocalStorage'
1415
import useApiKeys from '$/stores/apiKeys'
15-
import { useOnboardingInstall } from './_lib/OnboardingInstallProvider'
1616
import { FrameworkDefinition, FRAMEWORKS } from './frameworks'
1717
import InstallationModal from './_components/InstallationModal'
1818
import { useHover } from '@latitude-data/web-ui/browser'
1919
import { cn } from '@latitude-data/web-ui/utils'
20+
import { useCurrentProject } from '$/app/providers/ProjectProvider'
2021

2122
function FrameworkCard({
2223
framework,
@@ -58,6 +59,7 @@ export default function OnboardingInstallPage() {
5859
const [inviteModalOpen, setInviteModalOpen] = useState(false)
5960
const { execute: skipOnboarding, isPending: isSkipping } =
6061
useLatitudeAction(skipOnboardingAction)
62+
const { execute: publishEvent } = useLatitudeAction(publishEventAction)
6163
const { setValue: setReplayOnboarding } = useLocalStorage<boolean>({
6264
key: AppLocalStorage.replayOnboarding,
6365
defaultValue: false,
@@ -66,8 +68,12 @@ export default function OnboardingInstallPage() {
6668
const [selectedFramework, setSelectedFramework] =
6769
useState<FrameworkDefinition | null>(null)
6870

71+
useEffect(() => {
72+
publishEvent({ eventType: 'installOnboardingPageVisited' })
73+
}, []) // eslint-disable-line react-hooks/exhaustive-deps
74+
6975
const { data: apiKeys } = useApiKeys()
70-
const { project } = useOnboardingInstall()
76+
const { project } = useCurrentProject()
7177

7278
const firstApiKey = apiKeys?.[0]
7379

packages/core/src/events/events.d.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,23 @@ export type PasteYourPromptOnboardingCompleted = LatitudeEventGeneric<
757757
}
758758
>
759759

760+
export type InstallOnboardingPageVisited = LatitudeEventGeneric<
761+
'installOnboardingPageVisited',
762+
{
763+
workspaceId: number
764+
userEmail: string
765+
}
766+
>
767+
768+
export type OnboardingUserInvited = LatitudeEventGeneric<
769+
'onboardingUserInvited',
770+
{
771+
workspaceId: number
772+
userEmail: string
773+
invitedEmail: string
774+
}
775+
>
776+
760777
export type IssueCreatedEvent = LatitudeEventGeneric<
761778
'issueCreated',
762779
{
@@ -995,6 +1012,8 @@ export type LatitudeEvent =
9951012
| GenerateDatasetOnboardingPageVisited
9961013
| RunExperimentOnboardingPageVisited
9971014
| PasteYourPromptOnboardingCompleted
1015+
| InstallOnboardingPageVisited
1016+
| OnboardingUserInvited
9981017
| IssueCreatedEvent
9991018
| IssueUpdatedEvent
10001019
| IssueDeletedEvent
@@ -1083,6 +1102,8 @@ export interface IEventsHandlers {
10831102
generateDatasetOnboardingPageVisited: EventHandler<GenerateDatasetOnboardingPageVisited>[]
10841103
runExperimentOnboardingPageVisited: EventHandler<RunExperimentOnboardingPageVisited>[]
10851104
pasteYourPromptOnboardingCompleted: EventHandler<PasteYourPromptOnboardingCompleted>[]
1105+
installOnboardingPageVisited: EventHandler<InstallOnboardingPageVisited>[]
1106+
onboardingUserInvited: EventHandler<OnboardingUserInvited>[]
10861107
issueCreated: EventHandler<IssueCreatedEvent>[]
10871108
issueUpdated: EventHandler<IssueUpdatedEvent>[]
10881109
issueDeleted: EventHandler<IssueDeletedEvent>[]

packages/core/src/events/handlers/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ export const EventHandlers: IEventsHandlers = {
110110
generateDatasetOnboardingPageVisited: [],
111111
runExperimentOnboardingPageVisited: [],
112112
pasteYourPromptOnboardingCompleted: [],
113+
installOnboardingPageVisited: [],
114+
onboardingUserInvited: [],
113115
issueCreated: [],
114116
issueUpdated: [],
115117
issueDeleted: [],

0 commit comments

Comments
 (0)