Skip to content

Commit

Permalink
fix: Add ampl events for login, sync, and onboarding
Browse files Browse the repository at this point in the history
  • Loading branch information
calvin-codecov committed Jan 28, 2025
1 parent b61b646 commit 86f872a
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 3 deletions.
10 changes: 10 additions & 0 deletions src/pages/LoginPage/LoginButton.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import PropTypes from 'prop-types'

import { eventTracker } from 'services/events/events'
import { useNavLinks } from 'services/navigation'
import { Theme, useThemeContext } from 'shared/ThemeContext'
import {
Expand All @@ -21,6 +22,15 @@ function LoginButton({ provider }) {
className="flex h-14 items-center rounded-sm border border-ds-gray-quaternary bg-ds-gray-primary font-semibold shadow hover:bg-ds-gray-secondary"
href={signIn.path({ to, provider })}
data-cy={'login-button'}
onClick={() => {
eventTracker().track({
type: 'Button Clicked',
properties: {
buttonName: `Login with ${providerName}`,
buttonLocation: 'Login Page',
},
})
}}
>
<img
alt={`${providerName} logo`}
Expand Down
16 changes: 13 additions & 3 deletions src/pages/SyncProviderPage/SyncButton.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { eventTracker } from 'services/events/events'
import { useNavLinks } from 'services/navigation'
import { Provider } from 'shared/api/helpers'
import { loginProviderImage } from 'shared/utils/loginProviders'
Expand All @@ -10,20 +11,29 @@ interface SyncButtonProps {
const SyncButton: React.FC<SyncButtonProps> = ({ provider }) => {
const { signIn } = useNavLinks()
const to = `${window.location.protocol}//${window.location.host}/${provider}`

const providerName = providerToName(provider)
return (
<div className="flex h-14 items-center rounded-sm border border-ds-gray-quaternary bg-ds-gray-primary text-left shadow">
<a
className="flex h-full grow items-center font-semibold hover:bg-ds-gray-secondary"
href={signIn.path({ to, provider })}
data-cy={'login-button'}
onClick={() => {
eventTracker().track({
type: 'Button Clicked',
properties: {
buttonName: `Sync with ${providerName}`,
buttonLocation: 'Sync Provider Page',
},
})
}}
>
<img
alt={`Logo of ${providerToName(provider)}`}
alt={`Logo of ${providerName}`}
className="mx-4 block size-6"
src={loginProviderImage(provider)}
/>
Sync with {providerToName(provider)}
Sync with {providerName}
</a>
</div>
)
Expand Down
10 changes: 10 additions & 0 deletions src/pages/TermsOfService/TermsOfService.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import config from 'config'
import { SentryBugReporter } from 'sentry'

import umbrellaSvg from 'assets/svg/umbrella.svg'
import { eventTracker } from 'services/events/events'
import { useInternalUser } from 'services/user'
import A from 'ui/A'
import Button from 'ui/Button'
Expand Down Expand Up @@ -275,6 +276,15 @@ export default function TermsOfService() {
})}
type="submit"
hook="user signed tos"
onClick={() => {
eventTracker().track({
type: 'Button Clicked',
properties: {
buttonName: 'Continue',
buttonLocation: 'Terms of Service',
},
})
}}
to={undefined}
>
Continue
Expand Down
9 changes: 9 additions & 0 deletions src/services/events/types.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Provider } from 'shared/api/helpers'
import { providerToName } from 'shared/utils/provider'

//
// Add new events to the the Event union type below!
Expand Down Expand Up @@ -85,8 +86,16 @@ export abstract class EventTracker {
// Extend as needed.
//

type ProviderName = ReturnType<typeof providerToName>
type SyncButtonName = `Sync with ${ProviderName}`
type LoginButtonName = `Login with ${ProviderName}`

type ButtonName =
| 'Install GitHub App'
| 'Configure Repo'
| 'Open App Install Modal'
| 'Continue'
| SyncButtonName
| LoginButtonName

type PageName = 'Owner Page'

0 comments on commit 86f872a

Please sign in to comment.