@times-components/ts-components 1.104.1-alpha.67 → 1.104.1-alpha.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/social-embed/BlockedEmbedMessage.d.ts +1 -2
- package/dist/components/social-embed/BlockedEmbedMessage.js +53 -3
- package/dist/components/social-embed/SocialMediaEmbed.d.ts +5 -0
- package/dist/components/social-embed/SocialMediaEmbed.js +13 -23
- package/dist/components/social-embed/__tests__/BlockedEmbedMessage.test.d.ts +1 -0
- package/dist/components/social-embed/__tests__/BlockedEmbedMessage.test.js +96 -0
- package/dist/components/social-embed/helpers/__tests__/enableCookies.test.d.ts +1 -0
- package/dist/components/social-embed/helpers/__tests__/enableCookies.test.js +57 -0
- package/dist/components/social-embed/helpers/__tests__/getVendorTitle.test.d.ts +1 -0
- package/dist/components/social-embed/helpers/__tests__/getVendorTitle.test.js +25 -0
- package/dist/components/social-embed/helpers/__tests__/vendorConsent.test.js +29 -33
- package/dist/components/social-embed/helpers/vendorConsent.d.ts +1 -1
- package/dist/components/social-embed/helpers/vendorConsent.js +6 -4
- package/package.json +3 -3
- package/rnw.js +1 -1
- package/src/components/social-embed/BlockedEmbedMessage.tsx +72 -3
- package/src/components/social-embed/SocialMediaEmbed.tsx +55 -61
- package/src/components/social-embed/__tests__/BlockedEmbedMessage.test.tsx +146 -0
- package/src/components/social-embed/helpers/__tests__/enableCookies.test.ts +90 -0
- package/src/components/social-embed/helpers/__tests__/getVendorTitle.test.ts +29 -0
- package/src/components/social-embed/helpers/__tests__/vendorConsent.test.ts +29 -44
- package/src/components/social-embed/helpers/vendorConsent.ts +7 -6
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { FC, Dispatch, SetStateAction } from 'react';
|
|
2
2
|
import { VendorName } from './types';
|
|
3
|
-
declare type BlockedEmbedMessageProps = {
|
|
3
|
+
export declare type BlockedEmbedMessageProps = {
|
|
4
4
|
vendorName: VendorName;
|
|
5
5
|
setIsSocialEmbedAllowed: Dispatch<SetStateAction<boolean>>;
|
|
6
6
|
};
|
|
7
7
|
export declare const BlockedEmbedMessage: FC<BlockedEmbedMessageProps>;
|
|
8
|
-
export {};
|
|
@@ -7,9 +7,59 @@ import { openPrivacyModal } from './helpers/privacyModal';
|
|
|
7
7
|
import { socialMediaVendors } from './helpers/socialMediaVendors';
|
|
8
8
|
import { modalType } from './constants';
|
|
9
9
|
export const BlockedEmbedMessage = ({ vendorName, setIsSocialEmbedAllowed }) => {
|
|
10
|
+
// Allow cookies once - custom hook
|
|
10
11
|
const allowCookiesOnce = () => {
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
const vendorId = socialMediaVendors[vendorName].id;
|
|
13
|
+
const CONSENT_GRANTED_KEY = `consentGranted_${vendorId}`;
|
|
14
|
+
// Check if consent has already been granted for this vendor
|
|
15
|
+
const consentAlreadyGranted = sessionStorage.getItem(CONSENT_GRANTED_KEY) === 'true';
|
|
16
|
+
if (consentAlreadyGranted) {
|
|
17
|
+
setIsSocialEmbedAllowed(true);
|
|
18
|
+
}
|
|
19
|
+
if (!window.__tcfapi) {
|
|
20
|
+
// tslint:disable-next-line:no-console
|
|
21
|
+
console.error('TCF API is not available!');
|
|
22
|
+
setIsSocialEmbedAllowed(false);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Use __tcfapi to check and request consent if now previously granted
|
|
26
|
+
window.__tcfapi('getCustomVendorConsents', 2, (data, success) => {
|
|
27
|
+
if (success && data && data.grants && data.grants[vendorId]) {
|
|
28
|
+
const vendorConsent = data.grants[vendorId].vendorGrant;
|
|
29
|
+
if (vendorConsent) {
|
|
30
|
+
// Store consent status to avoid future prompts during the session
|
|
31
|
+
sessionStorage.setItem(CONSENT_GRANTED_KEY, 'true');
|
|
32
|
+
setIsSocialEmbedAllowed(true);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
if (!window.__tcfapi) {
|
|
36
|
+
// tslint:disable-next-line:no-console
|
|
37
|
+
console.error('TCF API is not available!');
|
|
38
|
+
setIsSocialEmbedAllowed(false);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// Request consent via postCustomConsent
|
|
42
|
+
window.__tcfapi('postCustomConsent', 2, (postConsentData, postSuccess) => {
|
|
43
|
+
if (postSuccess) {
|
|
44
|
+
sessionStorage.setItem(CONSENT_GRANTED_KEY, 'true');
|
|
45
|
+
// tslint:disable-next-line:no-console
|
|
46
|
+
console.log('postConsentData', postConsentData);
|
|
47
|
+
setIsSocialEmbedAllowed(true);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// tslint:disable-next-line:no-console
|
|
51
|
+
console.error(`Failed to obtain consent for vendor: ${vendorId}`);
|
|
52
|
+
setIsSocialEmbedAllowed(false);
|
|
53
|
+
}
|
|
54
|
+
}, [vendorId], Object.keys(data.grants[vendorId].purposeGrants), []);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// tslint:disable-next-line:no-console
|
|
59
|
+
console.error(`Consent data for vendor ${vendorId} not available or request failed.`);
|
|
60
|
+
setIsSocialEmbedAllowed(false);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
13
63
|
};
|
|
14
64
|
const handlePrivacyManagerClick = (e) => {
|
|
15
65
|
e.preventDefault();
|
|
@@ -29,4 +79,4 @@ export const BlockedEmbedMessage = ({ vendorName, setIsSocialEmbedAllowed }) =>
|
|
|
29
79
|
React.createElement(EnableButton, { onClick: () => enableCookies(vendorName) }, "Enable cookies"),
|
|
30
80
|
React.createElement(AllowButton, { onClick: () => allowCookiesOnce() }, "Allow cookies once")));
|
|
31
81
|
};
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmxvY2tlZEVtYmVkTWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NvY2lhbC1lbWJlZC9CbG9ja2VkRW1iZWRNZXNzYWdlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQW1ELE1BQU0sT0FBTyxDQUFDO0FBQ3hFLE9BQU8sRUFDTCxXQUFXLEVBQ1gsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osTUFBTSxFQUNOLGtCQUFrQixFQUNsQixTQUFTLEVBQ1QsS0FBSyxFQUNOLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFPeEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQWlDLENBQUMsRUFDaEUsVUFBVSxFQUNWLHVCQUF1QixFQUN4QixFQUFFLEVBQUU7SUFDSCxtQ0FBbUM7SUFDbkMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLEVBQUU7UUFDNUIsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25ELE1BQU0sbUJBQW1CLEdBQUcsa0JBQWtCLFFBQVEsRUFBRSxDQUFDO1FBRXpELDREQUE0RDtRQUM1RCxNQUFNLHFCQUFxQixHQUN6QixjQUFjLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEtBQUssTUFBTSxDQUFDO1FBRXpELElBQUkscUJBQXFCLEVBQUU7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
|
|
@@ -3,6 +3,11 @@ import { TcData, VendorName } from './types';
|
|
|
3
3
|
declare global {
|
|
4
4
|
interface Window {
|
|
5
5
|
__tcfapi?: (command: string, version: number, callback: (data: TcData, success: boolean) => void, listenerId?: number) => void;
|
|
6
|
+
twttr?: {
|
|
7
|
+
widgets: {
|
|
8
|
+
load: (element?: HTMLElement) => void;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
6
11
|
}
|
|
7
12
|
}
|
|
8
13
|
export declare type SocialMediaEmbedProps = {
|
|
@@ -2,7 +2,7 @@ import React, { useEffect, useState } from 'react';
|
|
|
2
2
|
import { BlockedEmbedMessage } from './BlockedEmbedMessage';
|
|
3
3
|
import { checkVendorConsent } from './helpers/vendorConsent';
|
|
4
4
|
import { eventStatus } from './constants';
|
|
5
|
-
export const SocialMediaEmbed = ({
|
|
5
|
+
export const SocialMediaEmbed = ({ id, url, vendorName }) => {
|
|
6
6
|
const [isSocialEmbedAllowed, setIsSocialEmbedAllowed] = useState(false);
|
|
7
7
|
const [data, setData] = useState(null);
|
|
8
8
|
useEffect(() => {
|
|
@@ -14,18 +14,23 @@ export const SocialMediaEmbed = ({ vendorName, url }) => {
|
|
|
14
14
|
eventStatus: tcData.eventStatus,
|
|
15
15
|
listenerId: tcData.listenerId
|
|
16
16
|
});
|
|
17
|
-
checkVendorConsent(vendorName
|
|
17
|
+
setIsSocialEmbedAllowed(checkVendorConsent(vendorName));
|
|
18
18
|
}
|
|
19
|
-
if (success &&
|
|
19
|
+
if (success &&
|
|
20
|
+
tcData.eventStatus === eventStatus.userActionComplete) {
|
|
20
21
|
setData({
|
|
21
22
|
cmpStatus: tcData.cmpStatus,
|
|
22
23
|
eventStatus: tcData.eventStatus,
|
|
23
24
|
listenerId: tcData.listenerId
|
|
24
25
|
});
|
|
25
|
-
checkVendorConsent(vendorName
|
|
26
|
+
setIsSocialEmbedAllowed(checkVendorConsent(vendorName));
|
|
26
27
|
}
|
|
27
28
|
});
|
|
28
29
|
}
|
|
30
|
+
// Trigger Twitter embed load when isSocialEmbedAllowed switches to true
|
|
31
|
+
if (isSocialEmbedAllowed && window.twttr && window.twttr.widgets) {
|
|
32
|
+
window.twttr.widgets.load();
|
|
33
|
+
}
|
|
29
34
|
return () => {
|
|
30
35
|
if (window.__tcfapi && data && data.listenerId) {
|
|
31
36
|
window.__tcfapi('removeEventListener', 2, success => {
|
|
@@ -36,24 +41,9 @@ export const SocialMediaEmbed = ({ vendorName, url }) => {
|
|
|
36
41
|
}, data.listenerId);
|
|
37
42
|
}
|
|
38
43
|
};
|
|
39
|
-
}, []);
|
|
40
|
-
useEffect(() => {
|
|
41
|
-
let socialEmbedContainer = document.getElementsByClassName('social-embed')[0];
|
|
42
|
-
if (socialEmbedContainer) {
|
|
43
|
-
let script = document.createElement('script');
|
|
44
|
-
script.type = 'text/javascript';
|
|
45
|
-
script.async = true;
|
|
46
|
-
script.src = 'https://platform.twitter.com/widgets.js';
|
|
47
|
-
let link = document.createElement('a');
|
|
48
|
-
link.href = `${url}?ref_src=twsrc%5Etfw`;
|
|
49
|
-
socialEmbedContainer.appendChild(script);
|
|
50
|
-
socialEmbedContainer.appendChild(link);
|
|
51
|
-
}
|
|
52
44
|
}, [isSocialEmbedAllowed]);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
console.log('isSocialEmbedAllowed', isSocialEmbedAllowed);
|
|
57
|
-
return isSocialEmbedAllowed ? (React.createElement("blockquote", { className: "social-embed" })) : (React.createElement(BlockedEmbedMessage, { vendorName: vendorName, setIsSocialEmbedAllowed: setIsSocialEmbedAllowed }));
|
|
45
|
+
return isSocialEmbedAllowed ? (React.createElement("div", { id: id },
|
|
46
|
+
React.createElement("blockquote", { className: "twitter-tweet" },
|
|
47
|
+
React.createElement("a", { href: url })))) : (React.createElement(BlockedEmbedMessage, { vendorName: vendorName, setIsSocialEmbedAllowed: setIsSocialEmbedAllowed }));
|
|
58
48
|
};
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29jaWFsTWVkaWFFbWJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NvY2lhbC1lbWJlZC9Tb2NpYWxNZWRpYUVtYmVkLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFNLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQTBCMUMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQThCLENBQUMsRUFDMUQsRUFBRSxFQUNGLEdBQUcsRUFDSCxVQUFVLEVBQ1gsRUFBRSxFQUFFO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixFQUFFLHVCQUF1QixDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFnQixJQUFJLENBQUMsQ0FBQztJQUV0RCxTQUFTLENBQ1AsR0FBRyxFQUFFO1FBQ0gsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFO2dCQUN6RCxJQUFJLE9BQU8sSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxRQUFRLEVBQUU7b0JBQzFELE9BQU8sQ0FBQzt3QkFDTixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7d0JBQzNCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVzt3QkFDL0IsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO3FCQUM5QixDQUFDLENBQUM7b0JBRUgsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztpQkFDekQ7Z0JBQ0QsSUFDRSxPQUFPO29CQUNQLE1BQU0sQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLGtCQUFrQixFQUNyRDtvQkFDQSxPQUFPLENBQUM7d0JBQ04sU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO3dCQUMzQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7d0JBQy9CLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtxQkFDOUIsQ0FBQyxDQUFDO29CQUVILHVCQUF1QixDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7aUJBQ3pEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELHdFQUF3RTtRQUN4RSxJQUFJLG9CQUFvQixJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDaEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDN0I7UUFFRCxPQUFPLEdBQUcsRUFBRTtZQUNWLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDOUMsTUFBTSxDQUFDLFFBQVEsQ0FDYixxQkFBcUIsRUFDckIsQ0FBQyxFQUNELE9BQU8sQ0FBQyxFQUFFO29CQUNSLElBQUksT0FBTyxFQUFFO3dCQUNYLHNDQUFzQzt3QkFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDdEI7Z0JBQ0gsQ0FBQyxFQUNELElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQztJQUNKLENBQUMsRUFDRCxDQUFDLG9CQUFvQixDQUFDLENBQ3ZCLENBQUM7SUFFRixPQUFPLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUM1Qiw2QkFBSyxFQUFFLEVBQUUsRUFBRTtRQUNULG9DQUFZLFNBQVMsRUFBQyxlQUFlO1lBQ25DLDJCQUFHLElBQUksRUFBRSxHQUFHLEdBQUksQ0FDTCxDQUNULENBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FDRixvQkFBQyxtQkFBbUIsSUFDbEIsVUFBVSxFQUFFLFVBQVUsRUFDdEIsdUJBQXVCLEVBQUUsdUJBQXVCLEdBQ2hELENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render, screen, fireEvent } from '@testing-library/react';
|
|
3
|
+
import { BlockedEmbedMessage } from '../BlockedEmbedMessage';
|
|
4
|
+
import { enableCookies } from '../helpers/enableCookies';
|
|
5
|
+
jest.mock('../helpers/enableCookies', () => ({
|
|
6
|
+
enableCookies: jest.fn()
|
|
7
|
+
}));
|
|
8
|
+
jest.mock('../helpers/privacyModal', () => ({
|
|
9
|
+
openPrivacyModal: jest.fn()
|
|
10
|
+
}));
|
|
11
|
+
jest.mock('../helpers/socialMediaVendors', () => ({
|
|
12
|
+
socialMediaVendors: {
|
|
13
|
+
twitter: { id: 'twitterId' }
|
|
14
|
+
}
|
|
15
|
+
}));
|
|
16
|
+
describe('BlockedEmbedMessage', () => {
|
|
17
|
+
const mockSetIsSocialEmbedAllowed = jest.fn();
|
|
18
|
+
const defaultProps = {
|
|
19
|
+
vendorName: 'twitter',
|
|
20
|
+
setIsSocialEmbedAllowed: mockSetIsSocialEmbedAllowed
|
|
21
|
+
};
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
jest.clearAllMocks();
|
|
24
|
+
window.__tcfapi = jest.fn();
|
|
25
|
+
sessionStorage.clear();
|
|
26
|
+
});
|
|
27
|
+
it('should call enableCookies when "Enable cookies" button is clicked', () => {
|
|
28
|
+
render(React.createElement(BlockedEmbedMessage, Object.assign({}, defaultProps)));
|
|
29
|
+
fireEvent.click(screen.getByRole('button', { name: /Enable cookies/i }));
|
|
30
|
+
expect(enableCookies).toHaveBeenCalledWith('twitter');
|
|
31
|
+
});
|
|
32
|
+
it('should call allowCookiesOnce when "Allow cookies once" button is clicked', () => {
|
|
33
|
+
render(React.createElement(BlockedEmbedMessage, Object.assign({}, defaultProps)));
|
|
34
|
+
fireEvent.click(screen.getByRole('button', { name: /Allow cookies once/i }));
|
|
35
|
+
expect(window.__tcfapi).toHaveBeenCalledWith('getCustomVendorConsents', 2, expect.any(Function));
|
|
36
|
+
});
|
|
37
|
+
it('should set consentGranted in session storage and allow embed if consent is granted', () => {
|
|
38
|
+
window.__tcfapi = jest.fn((command, version, callback) => {
|
|
39
|
+
// tslint:disable-next-line:no-console
|
|
40
|
+
console.log('version', version);
|
|
41
|
+
if (command === 'getCustomVendorConsents') {
|
|
42
|
+
callback({
|
|
43
|
+
grants: {
|
|
44
|
+
twitterId: { vendorGrant: true, purposeGrants: { 1: true } }
|
|
45
|
+
}
|
|
46
|
+
}, true);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
render(React.createElement(BlockedEmbedMessage, Object.assign({}, defaultProps)));
|
|
50
|
+
fireEvent.click(screen.getByRole('button', { name: /Allow cookies once/i }));
|
|
51
|
+
expect(sessionStorage.getItem('consentGranted_twitterId')).toBe('true');
|
|
52
|
+
expect(mockSetIsSocialEmbedAllowed).toHaveBeenCalledWith(true);
|
|
53
|
+
});
|
|
54
|
+
it('should handle missing consent data gracefully and not allow embed', () => {
|
|
55
|
+
window.__tcfapi = jest.fn((command, version, callback) => {
|
|
56
|
+
// tslint:disable-next-line:no-console
|
|
57
|
+
console.log('command, version', command, version);
|
|
58
|
+
callback(null, false); // Simulate unsuccessful consent request
|
|
59
|
+
});
|
|
60
|
+
render(React.createElement(BlockedEmbedMessage, Object.assign({}, defaultProps)));
|
|
61
|
+
fireEvent.click(screen.getByRole('button', { name: /Allow cookies once/i }));
|
|
62
|
+
expect(sessionStorage.getItem('consentGranted_twitterId')).toBeNull();
|
|
63
|
+
expect(mockSetIsSocialEmbedAllowed).toHaveBeenCalledWith(false);
|
|
64
|
+
});
|
|
65
|
+
it('should handle postCustomConsent and allow embed if consent is successfully granted', () => {
|
|
66
|
+
window.__tcfapi = jest.fn((command, version, callback) => {
|
|
67
|
+
// tslint:disable-next-line:no-console
|
|
68
|
+
console.log('version', version);
|
|
69
|
+
if (command === 'getCustomVendorConsents') {
|
|
70
|
+
callback({
|
|
71
|
+
grants: {
|
|
72
|
+
twitterId: { vendorGrant: false, purposeGrants: { 1: true } }
|
|
73
|
+
}
|
|
74
|
+
}, true);
|
|
75
|
+
}
|
|
76
|
+
if (command === 'postCustomConsent') {
|
|
77
|
+
callback({}, true);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
render(React.createElement(BlockedEmbedMessage, Object.assign({}, defaultProps)));
|
|
81
|
+
fireEvent.click(screen.getByRole('button', { name: /Allow cookies once/i }));
|
|
82
|
+
expect(sessionStorage.getItem('consentGranted_twitterId')).toBe('true');
|
|
83
|
+
expect(mockSetIsSocialEmbedAllowed).toHaveBeenCalledWith(true);
|
|
84
|
+
});
|
|
85
|
+
it('should log an error if __tcfapi is not available and not allow embed', () => {
|
|
86
|
+
// tslint:disable-next-line:no-console
|
|
87
|
+
console.error = jest.fn();
|
|
88
|
+
delete window.__tcfapi;
|
|
89
|
+
render(React.createElement(BlockedEmbedMessage, Object.assign({}, defaultProps)));
|
|
90
|
+
fireEvent.click(screen.getByRole('button', { name: /Allow cookies once/i }));
|
|
91
|
+
// tslint:disable-next-line:no-console
|
|
92
|
+
expect(console.error).toHaveBeenCalledWith('TCF API is not available!');
|
|
93
|
+
expect(mockSetIsSocialEmbedAllowed).toHaveBeenCalledWith(false);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmxvY2tlZEVtYmVkTWVzc2FnZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL19fdGVzdHNfXy9CbG9ja2VkRW1iZWRNZXNzYWdlLnRlc3QudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsbUJBQW1CLEVBRXBCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpELElBQUksQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMzQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtDQUN6QixDQUFDLENBQUMsQ0FBQztBQUVKLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMxQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0NBQzVCLENBQUMsQ0FBQyxDQUFDO0FBRUosSUFBSSxDQUFDLElBQUksQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELGtCQUFrQixFQUFFO1FBQ2xCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUU7S0FDN0I7Q0FDRixDQUFDLENBQUMsQ0FBQztBQUVKLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7SUFDbkMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7SUFFOUMsTUFBTSxZQUFZLEdBQTZCO1FBQzdDLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLHVCQUF1QixFQUFFLDJCQUEyQjtLQUNyRCxDQUFD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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { enableCookies } from '../enableCookies';
|
|
2
|
+
jest.mock('../socialMediaVendors', () => ({
|
|
3
|
+
socialMediaVendors: {
|
|
4
|
+
facebook: { id: 'facebookId' },
|
|
5
|
+
twitter: { id: 'twitterId' }
|
|
6
|
+
}
|
|
7
|
+
}));
|
|
8
|
+
describe('enableCookies', () => {
|
|
9
|
+
const mockVendorId = 'facebookId';
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
jest.clearAllMocks();
|
|
12
|
+
window.__tcfapi = jest.fn();
|
|
13
|
+
});
|
|
14
|
+
it('should call __tcfapi with "getCustomVendorConsents" for the vendor', () => {
|
|
15
|
+
window.__tcfapi = jest.fn((command, version, callback) => {
|
|
16
|
+
// tslint:disable-next-line:no-console
|
|
17
|
+
console.log('command, version', command, version);
|
|
18
|
+
callback({
|
|
19
|
+
grants: { [mockVendorId]: { purposeGrants: { 1: true } } }
|
|
20
|
+
}, true);
|
|
21
|
+
});
|
|
22
|
+
enableCookies('facebook');
|
|
23
|
+
expect(window.__tcfapi).toHaveBeenCalledWith('getCustomVendorConsents', 2, expect.any(Function));
|
|
24
|
+
});
|
|
25
|
+
it('should call postCustomConsent if consent data and grants are available', () => {
|
|
26
|
+
const purposeGrants = { 1: true };
|
|
27
|
+
window.__tcfapi = jest.fn((command, version, callback) => {
|
|
28
|
+
// tslint:disable-next-line:no-console
|
|
29
|
+
console.log('command, version', command, version);
|
|
30
|
+
if (command === 'getCustomVendorConsents') {
|
|
31
|
+
callback({
|
|
32
|
+
grants: { [mockVendorId]: { purposeGrants } }
|
|
33
|
+
}, true);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
enableCookies('facebook');
|
|
37
|
+
expect(window.__tcfapi).toHaveBeenCalledWith('postCustomConsent', 2, expect.any(Function), [mockVendorId], Object.keys(purposeGrants), []);
|
|
38
|
+
});
|
|
39
|
+
it('should log an error if vendor consent data is not available', () => {
|
|
40
|
+
// tslint:disable-next-line:no-console
|
|
41
|
+
console.error = jest.fn();
|
|
42
|
+
window.__tcfapi = jest.fn((command, version, callback) => {
|
|
43
|
+
// tslint:disable-next-line:no-console
|
|
44
|
+
console.log('command, version', command, version);
|
|
45
|
+
callback(null, false); // Simulate unsuccessful __tcfapi call
|
|
46
|
+
});
|
|
47
|
+
enableCookies('facebook');
|
|
48
|
+
// tslint:disable-next-line:no-console
|
|
49
|
+
expect(console.error).toHaveBeenCalledWith('facebook vendor consent not available:', null);
|
|
50
|
+
});
|
|
51
|
+
it('should not call __tcfapi if __tcfapi is not defined', () => {
|
|
52
|
+
delete window.__tcfapi;
|
|
53
|
+
enableCookies('facebook');
|
|
54
|
+
expect(window.__tcfapi).toBeUndefined();
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5hYmxlQ29va2llcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL2hlbHBlcnMvX190ZXN0c19fL2VuYWJsZUNvb2tpZXMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLGtCQUFrQixFQUFFO1FBQ2xCLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUU7UUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRTtLQUM3QjtDQUNGLENBQUMsQ0FBQyxDQUFDO0FBRUosUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7SUFDN0IsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBRWxDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEIsTUFBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsb0VBQW9FLEVBQUUsR0FBRyxFQUFFO1FBQzNFLE1BQWMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDaEUsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2xELFFBQVEsQ0FDTjtnQkFDRSxNQUFNLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFF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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { getVendorTitle } from '../getVendorTitle';
|
|
2
|
+
describe('getVendorTitle', () => {
|
|
3
|
+
const mockSocialMediaVendors = {
|
|
4
|
+
facebook: { id: 'FacebookID' },
|
|
5
|
+
instagram: { id: 'InstagramID' }
|
|
6
|
+
};
|
|
7
|
+
it('should return "X (Twitter)" if the title is "twitter"', () => {
|
|
8
|
+
const result = getVendorTitle('twitter', mockSocialMediaVendors);
|
|
9
|
+
expect(result).toBe('X (Twitter)');
|
|
10
|
+
});
|
|
11
|
+
it('should return the id from socialMediaVendors if the title exists', () => {
|
|
12
|
+
const result = getVendorTitle('facebook', mockSocialMediaVendors);
|
|
13
|
+
expect(result).toBe('FacebookID');
|
|
14
|
+
});
|
|
15
|
+
it('should return the title if it does not exist in socialMediaVendors', () => {
|
|
16
|
+
const result = getVendorTitle('linkedin', mockSocialMediaVendors);
|
|
17
|
+
expect(result).toBe('linkedin');
|
|
18
|
+
});
|
|
19
|
+
it('should return the title if socialMediaVendors has no id for the given title', () => {
|
|
20
|
+
const mockVendorsWithoutId = { pinterest: {} };
|
|
21
|
+
const result = getVendorTitle('pinterest', mockVendorsWithoutId);
|
|
22
|
+
expect(result).toBe('pinterest');
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0VmVuZG9yVGl0bGUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NvY2lhbC1lbWJlZC9oZWxwZXJzL19fdGVzdHNfXy9nZXRWZW5kb3JUaXRsZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLE1BQU0sc0JBQXNCLEdBQUc7UUFDN0IsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRTtRQUM5QixTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFO0tBQ2pDLENBQUM7SUFFRixFQUFFLENBQUMsdURBQXVELEVBQUUsR0FBRyxFQUFFO1FBQy9ELE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUNqRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGtFQUFrRSxFQUFFLEdBQUcsRUFBRTtRQUMxRSxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsVUFBVSxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDbEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxvRUFBb0UsRUFBRSxHQUFHLEVBQUU7UUFDNUUsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNkVBQTZFLEVBQUUsR0FBRyxFQUFFO1FBQ3JGLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDL0MsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -1,53 +1,49 @@
|
|
|
1
1
|
import { checkVendorConsent } from '../vendorConsent';
|
|
2
2
|
describe('checkVendorConsent', () => {
|
|
3
|
-
|
|
3
|
+
const mockVendorName = 'twitter';
|
|
4
4
|
beforeEach(() => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
afterEach(() => {
|
|
8
|
-
jest.resetAllMocks();
|
|
5
|
+
// Reset the __tcfapi mock before each test
|
|
6
|
+
delete window.__tcfapi;
|
|
9
7
|
});
|
|
10
|
-
it('
|
|
11
|
-
|
|
12
|
-
// Mock window.__tcfapi function
|
|
8
|
+
it('returns true if the vendor has given consent', () => {
|
|
9
|
+
// Mock __tcfapi to simulate vendor consent
|
|
13
10
|
window.__tcfapi = jest.fn((command, version, callback) => {
|
|
14
11
|
// tslint:disable-next-line:no-console
|
|
15
|
-
console.log(
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
console.log(version);
|
|
13
|
+
if (command === 'getCustomVendorConsents') {
|
|
14
|
+
callback({ consentedVendors: [{ name: mockVendorName }] }, true);
|
|
15
|
+
}
|
|
18
16
|
});
|
|
19
|
-
checkVendorConsent(mockVendorName
|
|
20
|
-
expect(
|
|
21
|
-
expect(window.__tcfapi).toHaveBeenCalledWith('getCustomVendorConsents', 2, expect.any(Function));
|
|
17
|
+
const result = checkVendorConsent(mockVendorName);
|
|
18
|
+
expect(result).toBe(true);
|
|
22
19
|
});
|
|
23
|
-
it('
|
|
24
|
-
|
|
20
|
+
it('returns false if the vendor has not given consent', () => {
|
|
21
|
+
// Mock __tcfapi to simulate no consent given by vendor
|
|
25
22
|
window.__tcfapi = jest.fn((command, version, callback) => {
|
|
26
23
|
// tslint:disable-next-line:no-console
|
|
27
|
-
console.log(
|
|
28
|
-
|
|
24
|
+
console.log(version);
|
|
25
|
+
if (command === 'getCustomVendorConsents') {
|
|
26
|
+
callback({ consentedVendors: [{ name: 'otherVendor' }] }, true);
|
|
27
|
+
}
|
|
29
28
|
});
|
|
30
|
-
checkVendorConsent(mockVendorName
|
|
31
|
-
expect(
|
|
29
|
+
const result = checkVendorConsent(mockVendorName);
|
|
30
|
+
expect(result).toBe(false);
|
|
31
|
+
});
|
|
32
|
+
it('returns false if __tcfapi is not available', () => {
|
|
33
|
+
const result = checkVendorConsent(mockVendorName);
|
|
34
|
+
expect(result).toBe(false);
|
|
32
35
|
});
|
|
33
|
-
it('logs an error
|
|
36
|
+
it('logs an error and returns false on callback failure', () => {
|
|
34
37
|
const consoleSpy = jest.spyOn(console, 'log').mockImplementation();
|
|
35
|
-
const mockVendorName = 'twitter';
|
|
36
38
|
window.__tcfapi = jest.fn((command, version, callback) => {
|
|
37
39
|
// tslint:disable-next-line:no-console
|
|
38
|
-
console.log(
|
|
39
|
-
callback(null, false);
|
|
40
|
+
console.log(command, version);
|
|
41
|
+
callback(null, false);
|
|
40
42
|
});
|
|
41
|
-
checkVendorConsent(mockVendorName
|
|
42
|
-
expect(setIsSocialEmbedAllowed).not.toHaveBeenCalled();
|
|
43
|
+
const result = checkVendorConsent(mockVendorName);
|
|
43
44
|
expect(consoleSpy).toHaveBeenCalledWith(`Error fetching consent data or ${mockVendorName} embed not allowed`);
|
|
45
|
+
expect(result).toBe(false);
|
|
44
46
|
consoleSpy.mockRestore();
|
|
45
47
|
});
|
|
46
|
-
it('does nothing if window.__tcfapi is undefined', () => {
|
|
47
|
-
delete window.__tcfapi;
|
|
48
|
-
const mockVendorName = 'twitter';
|
|
49
|
-
checkVendorConsent(mockVendorName, setIsSocialEmbedAllowed);
|
|
50
|
-
expect(setIsSocialEmbedAllowed).not.toHaveBeenCalled();
|
|
51
|
-
});
|
|
52
48
|
});
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9yQ29uc2VudC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc29jaWFsLWVtYmVkL2hlbHBlcnMvX190ZXN0c19fL3ZlbmRvckNvbnNlbnQudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd0RCxRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO0lBQ2xDLE1BQU0sY0FBYyxHQUFlLFNBQVMsQ0FBQztJQUU3QyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsMkNBQTJDO1FBQzNDLE9BQVEsTUFBYyxDQUFDLFFBQVEsQ0FBQztJQUNsQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7UUFDdEQsMkNBQTJDO1FBQzFDLE1BQWMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDaEUsc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckIsSUFBSSxPQUFPLEtBQUsseUJBQXlCLEVBQUU7Z0JBQ3pDLFFBQVEsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2xFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLG1EQUFtRCxFQUFFLEdBQUcsRUFBRTtRQUMzRCx1REFBdUQ7UUFDdEQsTUFBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNoRSxzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQixJQUFJLE9BQU8sS0FBSyx5QkFBeUIsRUFBRTtnQkFDekMsUUFBUSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDakU7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNENBQTRDLEVBQUUsR0FBRyxFQUFFO1FBQ3BELE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMscURBQXFELEVBQUUsR0FBRyxFQUFFO1FBQzdELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFbEUsTUFBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNoRSxzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDOUIsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxvQkFBb0IsQ0FDckMsa0NBQWtDLGNBQWMsb0JBQW9CLENBQ3JFLENBQUM7UUFDRixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNCLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { VendorName } from '../types';
|
|
2
|
-
export declare const checkVendorConsent: (vendorName: VendorName
|
|
2
|
+
export declare const checkVendorConsent: (vendorName: VendorName) => boolean;
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
export const checkVendorConsent = (vendorName
|
|
1
|
+
export const checkVendorConsent = (vendorName) => {
|
|
2
|
+
let isSocialVendorAllowed = false;
|
|
2
3
|
if (window.__tcfapi) {
|
|
3
4
|
window.__tcfapi('getCustomVendorConsents', 2, (data, success) => {
|
|
4
5
|
if (success && data && data.consentedVendors) {
|
|
5
|
-
|
|
6
|
-
setIsSocialEmbedAllowed(isSocialVendorAllowed);
|
|
6
|
+
isSocialVendorAllowed = data.consentedVendors.some((vendor) => vendor.name.toLowerCase() === vendorName.toLowerCase());
|
|
7
7
|
}
|
|
8
8
|
else {
|
|
9
9
|
// tslint:disable-next-line:no-console
|
|
10
10
|
console.log(`Error fetching consent data or ${vendorName} embed not allowed`);
|
|
11
|
+
isSocialVendorAllowed = false;
|
|
11
12
|
}
|
|
12
13
|
});
|
|
13
14
|
}
|
|
15
|
+
return isSocialVendorAllowed;
|
|
14
16
|
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9yQ29uc2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NvY2lhbC1lbWJlZC9oZWxwZXJzL3ZlbmRvckNvbnNlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxVQUFzQixFQUFXLEVBQUU7SUFDcEUsSUFBSSxxQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFFbEMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ25CLE1BQU0sQ0FBQyxRQUFRLENBQ2IseUJBQXlCLEVBQ3pCLENBQUMsRUFDRCxDQUFDLElBQVMsRUFBRSxPQUFnQixFQUFFLEVBQUU7WUFDOUIsSUFBSSxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDNUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDaEQsQ0FBQyxNQUF3QixFQUFFLEVBQUUsQ0FDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQ3pELENBQUM7YUFDSDtpQkFBTTtnQkFDTCxzQ0FBc0M7Z0JBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQ1Qsa0NBQWtDLFVBQVUsb0JBQW9CLENBQ2pFLENBQUM7Z0JBQ0YscUJBQXFCLEdBQUcsS0FBSyxDQUFDO2FBQy9CO1FBQ0gsQ0FBQyxDQUNGLENBQUM7S0FDSDtJQUVELE9BQU8scUJBQXFCLENBQUM7QUFDL0IsQ0FBQyxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@times-components/ts-components",
|
|
3
|
-
"version": "1.104.1-alpha.
|
|
3
|
+
"version": "1.104.1-alpha.75+6fadc8fc15",
|
|
4
4
|
"description": "Reuseable Typescript React Components ",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"dev": "dist/index.js",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"@times-components/link": "^3.17.34",
|
|
58
58
|
"@times-components/provider": "^1.41.4",
|
|
59
59
|
"@times-components/provider-queries": "^2.23.3",
|
|
60
|
-
"@times-components/related-articles": "^6.17.89-alpha.
|
|
60
|
+
"@times-components/related-articles": "^6.17.89-alpha.75+6fadc8fc15",
|
|
61
61
|
"@times-components/ts-slices": "^1.9.23",
|
|
62
62
|
"@times-components/ts-styleguide": "^1.50.34",
|
|
63
63
|
"@times-components/utils": "^6.26.0",
|
|
@@ -117,5 +117,5 @@
|
|
|
117
117
|
"@testing-library/jest-dom/extend-expect"
|
|
118
118
|
]
|
|
119
119
|
},
|
|
120
|
-
"gitHead": "
|
|
120
|
+
"gitHead": "6fadc8fc152b22f9dc006070a6ff739af06db192"
|
|
121
121
|
}
|