From bb8065e2fc10b8a0898f8463bff7124c559321de Mon Sep 17 00:00:00 2001 From: Paul D'Ambra Date: Mon, 3 Jun 2024 11:13:53 +0100 Subject: [PATCH] fix: heatmaps with segment integration (#1218) --- src/posthog-core.ts | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/posthog-core.ts b/src/posthog-core.ts index bf9c32edd..1a95a85be 100644 --- a/src/posthog-core.ts +++ b/src/posthog-core.ts @@ -771,14 +771,7 @@ export class PostHog { let data: CaptureResult = { uuid: uuidv7(), event: event_name, - properties: this._calculate_event_properties(event_name, properties || {}), - } - - if (!options?._noHeatmaps) { - const heatmapsBuffer = this.heatmaps?.getAndClearBuffer() - if (heatmapsBuffer) { - data.properties['$heatmap_data'] = heatmapsBuffer - } + properties: this._calculate_event_properties(event_name, properties || {}, options), } if (clientRateLimitContext) { @@ -831,7 +824,11 @@ export class PostHog { this.on('eventCaptured', (data) => callback(data.event)) } - _calculate_event_properties(event_name: string, event_properties: Properties): Properties { + _calculate_event_properties( + event_name: string, + event_properties: Properties, + options?: CaptureOptions + ): Properties { if (!this.persistence || !this.sessionPersistence) { return event_properties } @@ -911,6 +908,13 @@ export class PostHog { properties['$is_identified'] = this._isIdentified() + if (!options?._noHeatmaps) { + const heatmapsBuffer = this.heatmaps?.getAndClearBuffer() + if (heatmapsBuffer) { + properties['$heatmap_data'] = heatmapsBuffer + } + } + if (isArray(this.config.property_denylist)) { each(this.config.property_denylist, function (denylisted_prop) { delete properties[denylisted_prop]