From 9cdfa13191e60d87ae14a9b91fe3c4323da8ef91 Mon Sep 17 00:00:00 2001 From: Justin Mathew Date: Mon, 18 May 2026 15:46:19 +0530 Subject: [PATCH 1/3] SCAL-311919 : Mixpanel for pre Render --- src/embed/ts-embed.ts | 7 +++++++ src/mixpanel-service.ts | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/src/embed/ts-embed.ts b/src/embed/ts-embed.ts index d78dbd488..9580ea467 100644 --- a/src/embed/ts-embed.ts +++ b/src/embed/ts-embed.ts @@ -1485,6 +1485,7 @@ export class TsEmbed { * @param args */ public async render(): Promise { + uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_CALLED); if (!getIsInitCalled()) { logger.error(ERROR_MESSAGE.RENDER_CALLED_BEFORE_INIT); } @@ -1547,6 +1548,10 @@ export class TsEmbed { */ public async preRender(showPreRenderByDefault = false, replaceExistingPreRender = false): Promise { + uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_PRE_RENDER, { + showPreRenderByDefault, + replaceExistingPreRender, + }); if (!this.viewConfig.preRenderId) { logger.error(ERROR_MESSAGE.PRERENDER_ID_MISSING); return this; @@ -1688,6 +1693,7 @@ export class TsEmbed { * element. */ public async showPreRender(): Promise { + uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_SHOW_PRE_RENDER); if (!this.viewConfig.preRenderId) { logger.error(ERROR_MESSAGE.PRERENDER_ID_MISSING); return this; @@ -1776,6 +1782,7 @@ export class TsEmbed { * If the component is not preRendered, it issues a warning. */ public hidePreRender(): void { + uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_HIDE_PRE_RENDER); if (!this.isPreRenderAvailable()) { // if the embed component is not preRendered , nothing to hide logger.warn('PreRender should be called before hiding it using hidePreRender.'); diff --git a/src/mixpanel-service.ts b/src/mixpanel-service.ts index 5da17db59..03e42e451 100644 --- a/src/mixpanel-service.ts +++ b/src/mixpanel-service.ts @@ -25,6 +25,10 @@ export const MIXPANEL_EVENT = { VISUAL_SDK_IFRAME_LOAD_PERFORMANCE: 'visual-sdk-iframe-load-performance', VISUAL_SDK_EMBED_CREATE: 'visual-sdk-embed-create', VERCEL_INTEGRATION_COMPLETED: 'vercel-integration-completed', + VISUAL_SDK_RENDER_CALLED: 'visual-sdk-render-called', + VISUAL_SDK_PRE_RENDER: 'visual-sdk-pre-render', + VISUAL_SDK_SHOW_PRE_RENDER: 'visual-sdk-show-pre-render', + VISUAL_SDK_HIDE_PRE_RENDER: 'visual-sdk-hide-pre-render', }; let isMixpanelInitialized = false; From cbaa4c7e375427f2a93ae41a768eb4e5eb0bb3df Mon Sep 17 00:00:00 2001 From: Justin Mathew Date: Wed, 20 May 2026 12:54:33 +0530 Subject: [PATCH 2/3] SCAL-311919 : add params --- src/embed/ts-embed.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/embed/ts-embed.ts b/src/embed/ts-embed.ts index 9580ea467..dcc6c4d40 100644 --- a/src/embed/ts-embed.ts +++ b/src/embed/ts-embed.ts @@ -1485,7 +1485,9 @@ export class TsEmbed { * @param args */ public async render(): Promise { - uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_CALLED); + uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_CALLED, { + embedComponentType: this.viewConfig.embedComponentType, + }); if (!getIsInitCalled()) { logger.error(ERROR_MESSAGE.RENDER_CALLED_BEFORE_INIT); } @@ -1693,7 +1695,10 @@ export class TsEmbed { * element. */ public async showPreRender(): Promise { - uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_SHOW_PRE_RENDER); + uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_SHOW_PRE_RENDER, { + preRenderId: this.viewConfig.preRenderId, + embedComponentType: this.viewConfig.embedComponentType, + }); if (!this.viewConfig.preRenderId) { logger.error(ERROR_MESSAGE.PRERENDER_ID_MISSING); return this; @@ -1782,7 +1787,10 @@ export class TsEmbed { * If the component is not preRendered, it issues a warning. */ public hidePreRender(): void { - uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_HIDE_PRE_RENDER); + uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_HIDE_PRE_RENDER, { + preRenderId: this.viewConfig.preRenderId, + embedComponentType: this.viewConfig.embedComponentType, + }); if (!this.isPreRenderAvailable()) { // if the embed component is not preRendered , nothing to hide logger.warn('PreRender should be called before hiding it using hidePreRender.'); From 5e54b68406e6d838964c7d6bc59b6a4a8a5d7e8c Mon Sep 17 00:00:00 2001 From: Justin Mathew <42416647+sastaachar@users.noreply.github.com> Date: Fri, 29 May 2026 07:52:05 +0100 Subject: [PATCH 3/3] Update ts-embed.ts --- src/embed/ts-embed.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/embed/ts-embed.ts b/src/embed/ts-embed.ts index ab45394da..b0a6d0823 100644 --- a/src/embed/ts-embed.ts +++ b/src/embed/ts-embed.ts @@ -1878,7 +1878,7 @@ export class TsEmbed { preRenderId: this.viewConfig.preRenderId, embedComponentType: this.viewConfig.embedComponentType, }); - if (!this.isPreRenderAvailable()) { + logger.debug('HidePreRender Called'); if (!this.isPreRenderConnected()) { // if the embed component is not preRendered , nothing to hide