diff --git a/apps/studio/lib/telemetry/track.ts b/apps/studio/lib/telemetry/track.ts
index ae76d33bd4c..43dd260cb5f 100644
--- a/apps/studio/lib/telemetry/track.ts
+++ b/apps/studio/lib/telemetry/track.ts
@@ -3,6 +3,7 @@ import { TelemetryEvent, TelemetryGroups } from 'common/telemetry-constants'
import { useRouter } from 'next/router'
import { useCallback } from 'react'
+import useLatest from '@/hooks/misc/useLatest'
import { useSelectedOrganizationQuery } from '@/hooks/misc/useSelectedOrganization'
import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject'
import { API_URL } from '@/lib/constants'
@@ -32,6 +33,12 @@ export const useTrack = () => {
const { data: org } = useSelectedOrganizationQuery()
const router = useRouter()
+ const latest = useLatest({
+ projectRef: project?.ref,
+ orgSlug: org?.slug,
+ pathname: router.pathname,
+ })
+
const track = useCallback(
(
action: A,
@@ -39,11 +46,12 @@ export const useTrack = () => {
? [properties: PropertiesForAction, groupOverrides?: Partial]
: [properties?: undefined, groupOverrides?: Partial]
) => {
+ const { projectRef, orgSlug, pathname } = latest.current
const [properties, groupOverrides] = args
const groups = {
- ...(project?.ref && { project: project.ref }),
- ...(org?.slug && { organization: org.slug }),
+ ...(projectRef && { project: projectRef }),
+ ...(orgSlug && { organization: orgSlug }),
...groupOverrides,
}
@@ -53,9 +61,9 @@ export const useTrack = () => {
...(groups && { groups }),
} as EventMap[A]
- sendTelemetryEvent(API_URL, event, router.pathname)
+ sendTelemetryEvent(API_URL, event, pathname)
},
- [project?.ref, org?.slug, router.pathname]
+ []
)
return track