Skip to content

Commit

Permalink
Add Flush Queue on JSSDK initialization (#9)
Browse files Browse the repository at this point in the history
  • Loading branch information
Jer1605 authored Feb 6, 2025
1 parent 8338e1f commit d7b9934
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
5 changes: 5 additions & 0 deletions src/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import * as PropTypes from 'prop-types';
import * as React from 'react';
import { useEdgeeDataCollection } from './lib/data-collection/data-collection.hook';
import { Consent } from './lib/data-collection/data-collection.types';
import { flushQueue } from './lib/data-collection/data-collection';

/**
* Interface representing the Edgee analytics object.
Expand Down Expand Up @@ -100,8 +101,12 @@ const EdgeeSdk = ({ src, dataInline }: EdgeeSdkProps): JSX.Element => {
};
})((window as Window).history);

if (window.edgee) flushQueue();
else window.addEventListener('edgee:loaded', flushQueue);

// Cleanup function to restore the original pushState and replaceState methods
return (): void => {
window.removeEventListener('edgee:loaded', flushQueue);
// No cleanup actions are defined here, but this is where you would restore the original methods if needed
};
}, []);
Expand Down
4 changes: 2 additions & 2 deletions src/lib/data-collection/data-collection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ const eventQueue: (QueuedEvent<Page | User | Track | Consent> | QueuedConsentEve
/**
* Flushes the event queue and sends all stored events to `window.edgee` if available.
*/
const flushQueue = () => {
if (typeof window !== 'undefined' && window.edgee) {
export const flushQueue = () => {
if (typeof window !== 'undefined' && window.edgee && eventQueue.length > 0) {
while (eventQueue.length > 0) {
const event = eventQueue.shift();
if (!event) return;
Expand Down

0 comments on commit d7b9934

Please sign in to comment.