diff --git a/.changeset/chatty-ladybugs-rhyme.md b/.changeset/chatty-ladybugs-rhyme.md new file mode 100644 index 000000000..9caba9de4 --- /dev/null +++ b/.changeset/chatty-ladybugs-rhyme.md @@ -0,0 +1,5 @@ +--- +'@scaleway/cookie-consent': patch +--- + +Add a screen object from window into the context of segment diff --git a/packages/cookie-consent/src/CookieConsentProvider/SegmentConsentMiddleware.tsx b/packages/cookie-consent/src/CookieConsentProvider/SegmentConsentMiddleware.tsx index 542647da0..383406b18 100644 --- a/packages/cookie-consent/src/CookieConsentProvider/SegmentConsentMiddleware.tsx +++ b/packages/cookie-consent/src/CookieConsentProvider/SegmentConsentMiddleware.tsx @@ -47,6 +47,17 @@ export const SegmentConsentMiddleware = ({ // https://segment.com/docs/privacy/consent-management/consent-in-segment-connections/#consent-object categoryPreferences: categoriesConsent, } + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (window) { + const screen = { + width: window.screen.width, + height: window.screen.height, + availHeight: window.screen.availHeight, + availWidth: window.screen.availWidth, + } + // eslint-disable-next-line , no-param-reassign + payload.obj.context['screen'] = screen + } // eslint-disable-next-line , no-param-reassign payload.obj.context['consent'] = consent diff --git a/packages/cookie-consent/src/CookieConsentProvider/__tests__/SegmentConsentMiddleware.test.tsx b/packages/cookie-consent/src/CookieConsentProvider/__tests__/SegmentConsentMiddleware.test.tsx new file mode 100644 index 000000000..41b1edb8a --- /dev/null +++ b/packages/cookie-consent/src/CookieConsentProvider/__tests__/SegmentConsentMiddleware.test.tsx @@ -0,0 +1,29 @@ +// useSegmentIntegrations tests have been splitted in multiple files because of https://github.com/facebook/vi/issues/8987 +import SegmentProvider from '@scaleway/use-segment' +import { render } from '@testing-library/react' +import { describe, it } from 'vitest' +import { CookieConsentProvider, SegmentConsentMiddleware } from '..' + +const segmentSettings = { + writeKey: 'writeKey', + cdnURL: 'cdnURL', + timeout: 300, +} + +describe('CookieConsent - SegmentConsentMiddleware', () => { + it('should render correctly', () => { + render( + + + + + , + ) + }) +})