Skip to content
Snippets Groups Projects
Commit 1246682d authored by Malte Finsterwalder's avatar Malte Finsterwalder
Browse files

HOLI-10936 fix: wrap track function in useCallback to prevent infinite rerender

parent 5019fdfb
No related branches found
No related tags found
No related merge requests found
......@@ -3,6 +3,7 @@ import { usePosthogCrossPlatform } from '@holi/core/tracking/PosthogCrossPlatfor
import { useConsentState } from '@holi/core/tracking/TrackingInitializer'
import { TrackingEvent } from '@holi/core/tracking/events'
import { ConsentState, TrackingHook } from '@holi/core/tracking/types'
import { useCallback } from 'react'
const logger = getLogger('Tracking')
......@@ -10,22 +11,25 @@ const useTracking = (): TrackingHook => {
const posthog = usePosthogCrossPlatform()
const [consent] = useConsentState()
return {
track: (event: TrackingEvent) => {
logger.debug('trackEvent', `tracking "${event.name}" event`, event)
try {
posthog.capture(event.name, {
...event.properties,
...ConsentState.toEventProperties(consent),
event_version__major: event.event_version__major,
event_version__minor: event.event_version__minor,
event_version__patch: event.event_version__patch,
})
} catch (e) {
// console.error will be picked up by Sentry, so this does not go unnoticed to the programmer, but to the user.
// eslint-disable-next-line no-console
console.error('Error during evaluation of onTrack callback', e)
}
},
track: useCallback(
(event: TrackingEvent) => {
logger.debug('trackEvent', `tracking "${event.name}" event`, event)
try {
posthog.capture(event.name, {
...event.properties,
...ConsentState.toEventProperties(consent),
event_version__major: event.event_version__major,
event_version__minor: event.event_version__minor,
event_version__patch: event.event_version__patch,
})
} catch (e) {
// console.error will be picked up by Sentry, so this does not go unnoticed to the programmer, but to the user.
// eslint-disable-next-line no-console
console.error('Error during evaluation of onTrack callback', e)
}
},
[consent, posthog]
),
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment