@times-components/ts-components 1.104.1-alpha.14 → 1.104.1-alpha.34
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/CHANGELOG.md +27 -0
- package/dist/components/article-header/ArticleHeader.js +6 -3
- package/dist/components/article-header/ArticleHeader.stories.js +2 -5
- package/dist/components/article-sidebar/ArticleSidebar.js +6 -3
- package/dist/components/article-sidebar/ArticleSidebar.stories.js +20 -10
- package/dist/components/article-sidebar/__tests__/index.test.js +49 -7
- package/dist/components/article-sidebar/tracking-helpers.d.ts +13 -0
- package/dist/components/article-sidebar/tracking-helpers.js +16 -0
- package/dist/components/twitter-embed/TwitterEmbed.d.ts +5 -3
- package/dist/components/twitter-embed/TwitterEmbed.js +85 -12
- package/dist/components/twitter-embed/__tests__/TwitterEmbed.test.js +366 -25
- package/dist/components/twitter-embed/styles.d.ts +8 -0
- package/dist/components/twitter-embed/styles.js +75 -0
- package/dist/components/updated-timestamp/UpdatedTimestamp.js +4 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/package.json +5 -4
- package/rnw.js +1 -1
- package/src/components/article-header/ArticleHeader.stories.tsx +1 -5
- package/src/components/article-header/ArticleHeader.tsx +5 -6
- package/src/components/article-sidebar/ArticleSidebar.stories.tsx +24 -10
- package/src/components/article-sidebar/ArticleSidebar.tsx +22 -2
- package/src/components/article-sidebar/__tests__/__snapshots__/index.test.tsx.snap +8 -8
- package/src/components/article-sidebar/__tests__/index.test.tsx +56 -6
- package/src/components/article-sidebar/tracking-helpers.ts +21 -0
- package/src/components/twitter-embed/TwitterEmbed.tsx +146 -14
- package/src/components/twitter-embed/__tests__/TwitterEmbed.test.tsx +523 -22
- package/src/components/twitter-embed/styles.ts +82 -0
- package/src/components/updated-timestamp/UpdatedTimestamp.tsx +3 -1
- package/src/index.ts +2 -0
- package/tslint.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,33 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.105.1](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.105.0...@times-components/ts-components@1.105.1) (2024-10-15)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @times-components/ts-components
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [1.105.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.104.1...@times-components/ts-components@1.105.0) (2024-10-15)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **TMPZ-112:** Implement tracking of clicks on puzzles in sidebar component ([#3926](https://github.com/newsuk/times-components/issues/3926)) ([a84e5f3](https://github.com/newsuk/times-components/commit/a84e5f3a2bb34da21824c68a7dd89bb8419ef214))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## [1.104.1](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.104.0...@times-components/ts-components@1.104.1) (2024-10-14)
|
|
26
|
+
|
|
27
|
+
**Note:** Version bump only for package @times-components/ts-components
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
6
33
|
# [1.104.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.103.5...@times-components/ts-components@1.104.0) (2024-09-30)
|
|
7
34
|
|
|
8
35
|
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import differenceInSeconds from 'date-fns/differenceInSeconds';
|
|
3
|
+
import differenceInCalendarDays from 'date-fns/differenceInCalendarDays';
|
|
4
|
+
import formatDistanceStrict from 'date-fns/formatDistanceStrict';
|
|
5
|
+
import utcToZonedTime from 'date-fns-tz/utcToZonedTime';
|
|
6
|
+
import format from 'date-fns-tz/format';
|
|
4
7
|
import { BreakingArticleFlag } from '../article-flag/LiveArticleFlag';
|
|
5
8
|
import safeDecodeURIComponent from '../../utils/safeDecodeURIComponent';
|
|
6
9
|
import { Container, Divider, Headline, TimeSincePublishing, TimeSincePublishingContainer, UpdatedDate, UpdatedTime, UpdatedTimeItems, UpdatesContainer, FlagContainer } from './styles';
|
|
@@ -70,4 +73,4 @@ const ArticleHeader = ({ updated, breaking, headline, authorSlug, description })
|
|
|
70
73
|
authorData && (React.createElement(ArticleBylineBlock, { authorData: authorData, description: description }))));
|
|
71
74
|
};
|
|
72
75
|
export default ArticleHeader;
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZUhlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FydGljbGUtaGVhZGVyL0FydGljbGVIZWFkZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNuRCxPQUFPLG1CQUFtQixNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sd0JBQXdCLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxvQkFBb0IsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLGNBQWMsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLE1BQU0sTUFBTSxvQkFBb0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLHNCQUFzQixNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsT0FBTyxFQUNQLFFBQVEsRUFDUixtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLFdBQVcsRUFDWCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixhQUFhLEVBQ2QsTUFBTSxVQUFVLENBQUM7QUFFbEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxTQUFTLEdBQUcsRUFBRSxFQUFFLFdBQVcsR0FBRyxFQUFFLEVBQUUsRUFBRTtJQUN4RCxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUM7SUFDOUIsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzdCLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENB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
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { storiesOf } from '@storybook/react';
|
|
3
3
|
import { select, text } from '@storybook/addon-knobs';
|
|
4
|
-
import
|
|
5
|
-
// format,
|
|
6
|
-
addMinutes } from 'date-fns';
|
|
7
|
-
// import { utcToZonedTime } from 'date-fns-tz';
|
|
4
|
+
import addMinutes from 'date-fns/addMinutes';
|
|
8
5
|
import { ArticleHarness } from '../../fixtures/article-harness/ArticleHarness';
|
|
9
6
|
import ArticleHeader from './ArticleHeader';
|
|
10
7
|
const getAttributes = () => {
|
|
@@ -38,4 +35,4 @@ storiesOf('Typescript Component/Article Header', module)
|
|
|
38
35
|
// time={props.time}
|
|
39
36
|
breaking: props.breaking, authorSlug: props.authorSlug, description: props.description })));
|
|
40
37
|
});
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZUhlYWRlci5zdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXJ0aWNsZS1oZWFkZXIvQXJ0aWNsZUhlYWRlci5zdG9yaWVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxVQUFVLE1BQU0scUJBQXFCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQy9FLE9BQU8sYUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRTtJQUN6QixNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFFckIsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV4RSwyREFBMkQ7SUFDM0QsNERBQTREO0lBQzVELHdFQUF3RTtJQUV4RSxNQUFNLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQ25ELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLHNCQUFzQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTlELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXhELE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLENBQUM7QUFDbEUsQ0FBQyxDQUFDO0FBRUYsU0FBUyxDQUFDLHFDQUFxQyxFQUFFLE1BQU0sQ0FBQztLQUNyRCxHQUFHLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO0lBQ3hDLE1BQU0sS0FBSyxHQUFHLGFBQWEsRUFBRSxDQUFDO0lBQzlCLE9BQU8sQ0FDTCxvQkFBQyxjQUFjO1FBQ2Isb0JBQUMsYUFBYSxJQUNaLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUN4QixRQUFRLEVBQUUsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUM1QyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFDNUIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLEdBQzlCLENBQ2EsQ0FDbEIsQ0FBQztBQUNKLENBQUMsQ0FBQztLQUNELEdBQUcsQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUU7SUFDM0MsTUFBTSxLQUFLLEdBQUcsYUFBYSxFQUFFLENBQUM7SUFDOUIsT0FBTyxDQUNMLG9CQUFDLGNBQWM7UUFDYixvQkFBQyxhQUFhLElBQ1osT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3RCLG9CQUFvQjtZQUNwQixvQkFBb0I7WUFDcEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQ3hCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUM1QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsR0FDOUIsQ0FDYSxDQUNsQixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ChevronButton, ChevronRightIcon, Container, Description, Divider, ItemTitle, Link, PuzzleContainer, PuzzleImage, Title, TitleIconContainer } from './styles';
|
|
3
|
+
import { useTrackingContext } from '../../helpers/tracking/TrackingContextProvider';
|
|
4
|
+
import { handleClick } from './tracking-helpers';
|
|
3
5
|
export const ArticleSidebar = ({ sectionTitle, data, pageLink }) => {
|
|
6
|
+
const { fireAnalyticsEvent } = useTrackingContext();
|
|
4
7
|
return (React.createElement(Container, null,
|
|
5
|
-
React.createElement(Link, { href: pageLink },
|
|
8
|
+
React.createElement(Link, { href: pageLink, onClick: () => handleClick(fireAnalyticsEvent, 'puzzle sidebar: header selected'), className: "trigger" },
|
|
6
9
|
React.createElement(TitleIconContainer, null,
|
|
7
10
|
React.createElement(Title, null, sectionTitle),
|
|
8
11
|
React.createElement(ChevronButton, null,
|
|
@@ -10,9 +13,9 @@ export const ArticleSidebar = ({ sectionTitle, data, pageLink }) => {
|
|
|
10
13
|
React.createElement(Description, null, "Challenge yourself with today\u2019s puzzles."),
|
|
11
14
|
React.createElement(Divider, null),
|
|
12
15
|
data.map(({ title, url, imgUrl }) => (React.createElement(React.Fragment, { key: title },
|
|
13
|
-
React.createElement(PuzzleContainer, { href: url },
|
|
16
|
+
React.createElement(PuzzleContainer, { href: url, onClick: () => handleClick(fireAnalyticsEvent, 'puzzle sidebar: puzzle selected', `${title}`), className: "trigger-card-link" },
|
|
14
17
|
React.createElement(PuzzleImage, { src: imgUrl, alt: "Puzzle thumbnail" }),
|
|
15
18
|
React.createElement(ItemTitle, null, title)),
|
|
16
19
|
React.createElement(Divider, null))))));
|
|
17
20
|
};
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZVNpZGViYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hcnRpY2xlLXNpZGViYXIvQXJ0aWNsZVNpZGViYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBYSxNQUFNLE9BQU8sQ0FBQztBQUVsQyxPQUFPLEVBQ0wsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsV0FBVyxFQUNYLE9BQU8sRUFDUCxTQUFTLEVBQ1QsSUFBSSxFQUNKLGVBQWUsRUFDZixXQUFXLEVBQ1gsS0FBSyxFQUNMLGtCQUFrQixFQUNuQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFRakQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUE0QixDQUFDLEVBQ3RELFlBQVksRUFDWixJQUFJLEVBQ0osUUFBUSxFQUNULEVBQUUsRUFBRTtJQUNILE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxHQUFHLGtCQUFrQixFQUFFLENBQUM7SUFFcEQsT0FBTyxDQUNMLG9CQUFDLFNBQVM7UUFDUixvQkFBQyxJQUFJLElBQ0gsSUFBSSxFQUFFLFFBQVEsRUFDZCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQ1osV0FBVyxDQUFDLGtCQUFrQixFQUFFLGlDQUFpQyxDQUFDLEVBRXBFLFNBQVMsRUFBQyxTQUFTO1lBRW5CLG9CQUFDLGtCQUFrQjtnQkFDakIsb0JBQUMsS0FBSyxRQUFFLFlBQVksQ0FBUztnQkFDN0Isb0JBQUMsYUFBYTtvQkFDWixvQkFBQyxnQkFBZ0IsT0FBRyxDQUNOLENBQ0csQ0FDaEI7UUFFUCxvQkFBQyxXQUFXLHdEQUF1RDtRQUNuRSxvQkFBQyxPQUFPLE9BQUc7UUFFVixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUNwQyxvQkFBQyxLQUFLLENBQUMsUUFBUSxJQUFDLEdBQUcsRUFBRSxLQUFLO1lBQ3hCLG9CQUFDLGVBQWUsSUFDZCxJQUFJLEVBQUUsR0FBRyxFQUNULE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FDWixXQUFXLENBQ1Qsa0JBQWtCLEVBQ2xCLGlDQUFpQyxFQUNqQyxHQUFHLEtBQUssRUFBRSxDQUNYLEVBRUgsU0FBUyxFQUFDLG1CQUFtQjtnQkFFN0Isb0JBQUMsV0FBVyxJQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFDLGtCQUFrQixHQUFHO2dCQUNuRCxvQkFBQyxTQUFTLFFBQUUsS0FBSyxDQUFhLENBQ2Q7WUFDbEIsb0JBQUMsT0FBTyxPQUFHLENBQ0ksQ0FDbEIsQ0FBQyxDQUNRLENBQ2IsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
|
|
@@ -1,31 +1,41 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { storiesOf } from '@storybook/react';
|
|
3
3
|
import { ArticleSidebar } from './ArticleSidebar';
|
|
4
|
+
import { TrackingContextProvider } from '../../helpers/tracking/TrackingContextProvider';
|
|
5
|
+
import analyticsStream from '../../fixtures/analytics-actions/analytics-actions';
|
|
4
6
|
const getAttributes = () => {
|
|
5
7
|
const sectionTitle = 'Puzzles';
|
|
6
8
|
const data = [
|
|
7
9
|
{
|
|
8
10
|
title: 'Crossword',
|
|
9
|
-
url: 'https://www.thetimes.
|
|
10
|
-
imgUrl: 'https://www.thetimes.
|
|
11
|
+
url: 'https://www.thetimes.com/puzzles/crossword',
|
|
12
|
+
imgUrl: 'https://www.thetimes.com/d/img/puzzles/new-illustrations/crossword-c7ae8934ef.png'
|
|
11
13
|
},
|
|
12
14
|
{
|
|
13
15
|
title: 'Polygon',
|
|
14
|
-
url: 'https://www.thetimes.
|
|
15
|
-
imgUrl: 'https://www.thetimes.
|
|
16
|
+
url: 'https://www.thetimes.com/puzzles/word-puzzles',
|
|
17
|
+
imgUrl: 'https://www.thetimes.com/d/img/puzzles/new-illustrations/polygon-875ea55487.png'
|
|
16
18
|
},
|
|
17
19
|
{
|
|
18
20
|
title: 'Sudoku',
|
|
19
|
-
url: 'https://www.thetimes.
|
|
20
|
-
imgUrl: 'https://www.thetimes.
|
|
21
|
+
url: 'https://www.thetimes.com/puzzles/sudoku',
|
|
22
|
+
imgUrl: 'https://www.thetimes.com/d/img/puzzles/new-illustrations/sudoku-ee2aea0209.png'
|
|
21
23
|
}
|
|
22
24
|
];
|
|
23
|
-
const pageLink = 'https://www.thetimes.
|
|
25
|
+
const pageLink = 'https://www.thetimes.com/puzzles';
|
|
24
26
|
return { sectionTitle, data, pageLink };
|
|
25
27
|
};
|
|
26
28
|
storiesOf('Typescript Component/Article Sidebar', module).add('Article Sidebar', () => {
|
|
27
29
|
const props = getAttributes();
|
|
28
|
-
return (React.createElement(
|
|
29
|
-
|
|
30
|
+
return (React.createElement(TrackingContextProvider, { context: {
|
|
31
|
+
component: 'ArticleSkeleton',
|
|
32
|
+
object: 'ArticleSidebar',
|
|
33
|
+
attrs: {
|
|
34
|
+
article_name: 'articleHeadline',
|
|
35
|
+
section_details: 'section'
|
|
36
|
+
}
|
|
37
|
+
}, analyticsStream: analyticsStream },
|
|
38
|
+
React.createElement("div", { style: { maxWidth: '204px' } },
|
|
39
|
+
React.createElement(ArticleSidebar, Object.assign({}, props)))));
|
|
30
40
|
});
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZVNpZGViYXIuc3Rvcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FydGljbGUtc2lkZWJhci9BcnRpY2xlU2lkZWJhci5zdG9yaWVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLGVBQWUsTUFBTSxvREFBb0QsQ0FBQztBQUVqRixNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUU7SUFDekIsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDO0lBQy9CLE1BQU0sSUFBSSxHQUFHO1FBQ1g7WUFDRSxLQUFLLEVBQUUsV0FBVztZQUNsQixHQUFHLEVBQUUsNENBQTRDO1lBQ2pELE1BQU0sRUFDSixtRkFBbUY7U0FDdEY7UUFDRDtZQUNFLEtBQUssRUFBRSxTQUFTO1lBQ2hCLEdBQUcsRUFBRSwrQ0FBK0M7WUFDcEQsTUFBTSxFQUNKLGlGQUFpRjtTQUNwRjtRQUNEO1lBQ0UsS0FBSyxFQUFFLFFBQVE7WUFDZixHQUFHLEVBQUUseUNBQXlDO1lBQzlDLE1BQU0sRUFDSixnRkFBZ0Y7U0FDbkY7S0FDRixDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUcsa0NBQWtDLENBQUM7SUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDMUMsQ0FBQyxDQUFDO0FBRUYsU0FBUyxDQUFDLHNDQUFzQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FDM0QsaUJBQWlCLEVBQ2pCLEdBQUcsRUFBRTtJQUNILE1BQU0sS0FBSyxHQUFHLGFBQWEsRUFBRSxDQUFDO0lBRTlCLE9BQU8sQ0FDTCxvQkFBQyx1QkFBdUIsSUFDdEIsT0FBTyxFQUFFO1lBQ1AsU0FBUyxFQUFFLGlCQUFpQjtZQUM1QixNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLEtBQUssRUFBRTtnQkFDTCxZQUFZLEVBQUUsaUJBQWlCO2dCQUMvQixlQUFlLEVBQUUsU0FBUzthQUMzQjtTQUNGLEVBQ0QsZUFBZSxFQUFFLGVBQWU7UUFFaEMsNkJBQUssS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtZQUMvQixvQkFBQyxjQUFjLG9CQUFLLEtBQUssRUFBSSxDQUN6QixDQUNrQixDQUMzQixDQUFDO0FBQ0osQ0FBQyxDQUNGLENBQUMifQ==
|
|
@@ -1,28 +1,70 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ArticleSidebar } from '../ArticleSidebar';
|
|
3
|
-
import { render } from '@testing-library/react';
|
|
3
|
+
import { render, fireEvent } from '@testing-library/react';
|
|
4
4
|
import '@testing-library/jest-dom';
|
|
5
|
+
import { useTrackingContext } from '../../../helpers/tracking/TrackingContextProvider';
|
|
6
|
+
jest.mock('../../../helpers/tracking/TrackingContextProvider', () => ({
|
|
7
|
+
useTrackingContext: jest.fn()
|
|
8
|
+
}));
|
|
9
|
+
const mockFireAnalyticsEvent = jest.fn();
|
|
5
10
|
const defaultProps = {
|
|
6
11
|
sectionTitle: 'Puzzles for you',
|
|
7
12
|
data: [
|
|
8
13
|
{
|
|
9
14
|
title: 'Crossword',
|
|
10
|
-
url: 'https://www.thetimes.
|
|
11
|
-
imgUrl: 'https://www.thetimes.
|
|
15
|
+
url: 'https://www.thetimes.com/puzzles/crossword',
|
|
16
|
+
imgUrl: 'https://www.thetimes.com/imageserver/image/%2Fpuzzles%2Ficons%2F33b27655-dcc9-421f-906f-b2b10dd26865.png?crop=1250%2C833%2C0%2C0&resize=500'
|
|
12
17
|
},
|
|
13
18
|
{
|
|
14
19
|
title: 'Polygon',
|
|
15
|
-
url: 'https://www.thetimes.
|
|
16
|
-
imgUrl: 'https://www.thetimes.
|
|
20
|
+
url: 'https://www.thetimes.com/puzzles/sudoku',
|
|
21
|
+
imgUrl: 'https://www.thetimes.com/imageserver/image/%2Fpuzzles%2Ficons%2F33b27655-dcc9-421f-906f-b2b10dd26865.png?crop=1250%2C833%2C0%2C0&resize=500'
|
|
17
22
|
}
|
|
18
23
|
],
|
|
19
|
-
pageLink: 'https://www.thetimes.
|
|
24
|
+
pageLink: 'https://www.thetimes.com/puzzles'
|
|
20
25
|
};
|
|
21
26
|
const renderComponent = (props) => render(React.createElement(ArticleSidebar, Object.assign({}, props)));
|
|
22
27
|
describe('ArticleSidebar', () => {
|
|
28
|
+
beforeEach(() => {
|
|
29
|
+
useTrackingContext.mockReturnValue({
|
|
30
|
+
fireAnalyticsEvent: mockFireAnalyticsEvent
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
afterEach(() => {
|
|
34
|
+
jest.clearAllMocks();
|
|
35
|
+
});
|
|
23
36
|
it('should render ArticleSidebar component', () => {
|
|
24
37
|
const { asFragment } = renderComponent(defaultProps);
|
|
25
38
|
expect(asFragment()).toMatchSnapshot();
|
|
26
39
|
});
|
|
40
|
+
it('should call fireAnalyticsEvent when header is clicked', () => {
|
|
41
|
+
const { container } = renderComponent(defaultProps);
|
|
42
|
+
fireEvent.click(container.querySelector('.trigger'));
|
|
43
|
+
expect(mockFireAnalyticsEvent).toHaveBeenCalledWith({
|
|
44
|
+
object: 'ArticleSidebar',
|
|
45
|
+
action: 'Clicked',
|
|
46
|
+
attrs: {
|
|
47
|
+
event_navigation_action: 'navigation',
|
|
48
|
+
event_navigation_name: 'puzzle sidebar: header selected',
|
|
49
|
+
event_navigation_browsing_method: 'click',
|
|
50
|
+
component_name: 'Article Sidebar'
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
it('should call fireAnalyticsEvent when a puzzle card is clicked', () => {
|
|
55
|
+
const { container } = renderComponent(defaultProps);
|
|
56
|
+
fireEvent.click(container.querySelector('.trigger-card-link'));
|
|
57
|
+
expect(mockFireAnalyticsEvent).toHaveBeenCalledWith({
|
|
58
|
+
object: 'ArticleSidebar',
|
|
59
|
+
action: 'Clicked',
|
|
60
|
+
attrs: {
|
|
61
|
+
event_navigation_action: 'navigation',
|
|
62
|
+
event_navigation_name: 'puzzle sidebar: puzzle selected',
|
|
63
|
+
event_navigation_browsing_method: 'click',
|
|
64
|
+
component_name: 'Article Sidebar',
|
|
65
|
+
article_parent_name: 'crossword'
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
});
|
|
27
69
|
});
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FydGljbGUtc2lkZWJhci9fX3Rlc3RzX18vaW5kZXgudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxjQUFjLEVBQXVCLE1BQU0sbUJBQW1CLENBQUM7QUFDeEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXZGLElBQUksQ0FBQyxJQUFJLENBQUMsbURBQW1ELEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNwRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0NBQzlCLENBQUMsQ0FBQyxDQUFDO0FBRUosTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7QUFFekMsTUFBTSxZQUFZLEdBQXdCO0lBQ3hDLFlBQVksRUFBRSxpQkFBaUI7SUFDL0IsSUFBSSxFQUFFO1FBQ0o7WUFDRSxLQUFLLEVBQUUsV0FBVztZQUNsQixHQUFHLEVBQUUsNENBQTRDO1lBQ2pELE1BQU0sRUFDSiw2SUFBNkk7U0FDaEo7UUFDRDtZQUNFLEtBQUssRUFBRSxTQUFTO1lBQ2hCLEdBQUcsRUFBRSx5Q0FBeUM7WUFDOUMsTUFBTSxFQUNKLDZJQUE2STtTQUNoSjtLQUNGO0lBQ0QsUUFBUSxFQUFFLGtDQUFrQztDQUM3QyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUEwQixFQUFFLEVBQUUsQ0FDckQsTUFBTSxDQUFDLG9CQUFDLGNBQWMsb0JBQUssS0FBSyxFQUFJLENBQUMsQ0FBQztBQUV4QyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDYixrQkFBZ0MsQ0FBQyxlQUFlLENBQUM7WUFDaEQsa0JBQWtCLEVBQUUsc0JBQXNCO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyRCxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx1REFBdUQsRUFBRSxHQUFHLEVBQUU7UUFDL0QsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRCxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFFLENBQUMsQ0FBQztRQUV0RCxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQztZQUNsRCxNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLEtBQUssRUFBRTtnQkFDTCx1QkFBdUIsRUFBRSxZQUFZO2dCQUNyQyxxQkFBcUIsRUFBRSxpQ0FBaUM7Z0JBQ3hELGdDQUFnQyxFQUFFLE9BQU87Z0JBQ3pDLGNBQWMsRUFBRSxpQkFBaUI7YUFDbEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw4REFBOEQsRUFBRSxHQUFHLEVBQUU7UUFDdEUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRCxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUUsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1lBQ2xELE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsTUFBTSxFQUFFLFNBQVM7WUFDakIsS0FBSyxFQUFFO2dCQUNMLHVCQUF1QixFQUFFLFlBQVk7Z0JBQ3JDLHFCQUFxQixFQUFFLGlDQUFpQztnQkFDeEQsZ0NBQWdDLEVBQUUsT0FBTztnQkFDekMsY0FBYyxFQUFFLGlCQUFpQjtnQkFDakMsbUJBQW1CLEVBQUUsV0FBVzthQUNqQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
declare const clickEvent: (title: string, parent?: string) => {
|
|
2
|
+
object: string;
|
|
3
|
+
action: string;
|
|
4
|
+
attrs: {
|
|
5
|
+
article_parent_name?: string | undefined;
|
|
6
|
+
event_navigation_action: string;
|
|
7
|
+
event_navigation_name: string;
|
|
8
|
+
event_navigation_browsing_method: string;
|
|
9
|
+
component_name: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
declare const handleClick: (fireAnalyticsEvent: ((analyticsEvent: any) => void) | undefined, title: string, parent?: string | undefined) => void;
|
|
13
|
+
export { handleClick, clickEvent };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const clickEvent = (title, parent = '') => ({
|
|
2
|
+
object: 'ArticleSidebar',
|
|
3
|
+
action: 'Clicked',
|
|
4
|
+
attrs: {
|
|
5
|
+
event_navigation_action: 'navigation',
|
|
6
|
+
event_navigation_name: `${title}`,
|
|
7
|
+
event_navigation_browsing_method: 'click',
|
|
8
|
+
component_name: 'Article Sidebar',
|
|
9
|
+
...(parent && { article_parent_name: parent.toLowerCase() })
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
const handleClick = (fireAnalyticsEvent, title, parent) => {
|
|
13
|
+
fireAnalyticsEvent && fireAnalyticsEvent(clickEvent(title, parent));
|
|
14
|
+
};
|
|
15
|
+
export { handleClick, clickEvent };
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2tpbmctaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FydGljbGUtc2lkZWJhci90cmFja2luZy1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBYSxFQUFFLFNBQWlCLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxRCxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEtBQUssRUFBRTtRQUNMLHVCQUF1QixFQUFFLFlBQVk7UUFDckMscUJBQXFCLEVBQUUsR0FBRyxLQUFLLEVBQUU7UUFDakMsZ0NBQWdDLEVBQUUsT0FBTztRQUN6QyxjQUFjLEVBQUUsaUJBQWlCO1FBQ2pDLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztLQUM3RDtDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sV0FBVyxHQUFHLENBQ2xCLGtCQUErRCxFQUMvRCxLQUFhLEVBQ2IsTUFBZSxFQUNmLEVBQUU7SUFDRixrQkFBa0IsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDdEUsQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQyJ9
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
export declare type TwitterEmbedProps = {
|
|
3
|
+
element: any;
|
|
4
|
+
url: string;
|
|
5
|
+
};
|
|
2
6
|
declare global {
|
|
3
7
|
interface Window {
|
|
4
8
|
__tcfapi?: (command: string, version: number, callback: (data: any, success: boolean) => void) => void;
|
|
5
9
|
}
|
|
6
10
|
}
|
|
7
|
-
export declare const TwitterEmbed: React.FC<
|
|
8
|
-
sectionColour: string;
|
|
9
|
-
}>;
|
|
11
|
+
export declare const TwitterEmbed: React.FC<TwitterEmbedProps>;
|
|
@@ -1,27 +1,100 @@
|
|
|
1
|
-
import React, { useEffect } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { AllowButton, CardContainer, EnableButton, LinkPrivacyManager, Paragraph, Title, CustomIconContainer, Header } from './styles';
|
|
3
|
+
import get from 'lodash.get';
|
|
4
|
+
import { InfoIcon } from '../inline-message/InfoIcon';
|
|
5
|
+
// @ts-ignore
|
|
6
|
+
import InteractiveWrapper from '@times-components/interactive-wrapper';
|
|
7
|
+
export const TwitterEmbed = ({ element, url }) => {
|
|
8
|
+
const [allowedOnce, setAllowedOnce] = useState(false);
|
|
9
|
+
const [isTwitterAllowed, setIsTwitterAllowed] = useState(false);
|
|
5
10
|
useEffect(() => {
|
|
6
11
|
if (window.__tcfapi) {
|
|
7
12
|
window.__tcfapi('getCustomVendorConsents', 2, (data, success) => {
|
|
8
|
-
if (success) {
|
|
13
|
+
if (success && data && data.consentedVendors) {
|
|
14
|
+
const isTwitterVendorAllowed = data.consentedVendors.some((vendor) => vendor.name === 'Twitter');
|
|
15
|
+
setIsTwitterAllowed(isTwitterVendorAllowed);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
9
18
|
// tslint:disable-next-line:no-console
|
|
10
|
-
console.log('
|
|
19
|
+
console.log('Error fetching consent data or Twitter not allowed');
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
// tslint:disable-next-line:no-console
|
|
24
|
+
console.log('window', window);
|
|
25
|
+
}, []);
|
|
26
|
+
let ModalType;
|
|
27
|
+
(function (ModalType) {
|
|
28
|
+
ModalType["GDPR"] = "gdpr";
|
|
29
|
+
ModalType["CCPA"] = "ccpa";
|
|
30
|
+
})(ModalType || (ModalType = {}));
|
|
31
|
+
const openPrivacyModal = (type, messageId) => {
|
|
32
|
+
const loadModal = get(window, `_sp_.${type}.loadPrivacyManagerModal`);
|
|
33
|
+
if (loadModal) {
|
|
34
|
+
loadModal(messageId);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
// tslint:disable-next-line:no-console
|
|
38
|
+
console.warn('Sourcepoint LoadPrivacyManagerModal is not available');
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const allowCookiesOnce = () => {
|
|
42
|
+
setAllowedOnce(true);
|
|
43
|
+
setIsTwitterAllowed(true);
|
|
44
|
+
};
|
|
45
|
+
const handlePrivacyManagerClick = (e) => {
|
|
46
|
+
e.preventDefault();
|
|
47
|
+
openPrivacyModal(ModalType.GDPR, window.__TIMES_CONFIG__.sourcepoint.gdprMessageId);
|
|
48
|
+
};
|
|
49
|
+
const socialMediaVendors = {
|
|
50
|
+
twitter: { id: '5fab0c31a22863611c5f8764', status: 'pending' }
|
|
51
|
+
};
|
|
52
|
+
const enableCookies = () => {
|
|
53
|
+
const onCustomConsent = (data, success) => {
|
|
54
|
+
if (success) {
|
|
55
|
+
// tslint:disable-next-line:no-console
|
|
56
|
+
console.log('Consent successfully updated', data);
|
|
57
|
+
setIsTwitterAllowed(true);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
// tslint:disable-next-line:no-console
|
|
61
|
+
console.error('Failed to set consent for Twitter.', data);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
const twitterVendorId = socialMediaVendors.twitter.id;
|
|
65
|
+
if (window.__tcfapi && twitterVendorId) {
|
|
66
|
+
window.__tcfapi('getCustomVendorConsents', 2, (data, successful) => {
|
|
67
|
+
if (successful && data && data.grants[twitterVendorId]) {
|
|
68
|
+
// const purposeGrants = Object.keys(data.grants[twitterVendorId].purposeGrants).join(',');
|
|
69
|
+
window.__tcfapi('postCustomConsent', 2, onCustomConsent, twitterVendorId, Object.keys(data.grants[twitterVendorId].purposeGrants), '');
|
|
11
70
|
}
|
|
12
71
|
else {
|
|
13
72
|
// tslint:disable-next-line:no-console
|
|
14
|
-
console.
|
|
73
|
+
console.error('Twitter vendor consent not available:', data);
|
|
15
74
|
}
|
|
16
75
|
});
|
|
17
76
|
}
|
|
18
77
|
else {
|
|
19
78
|
// tslint:disable-next-line:no-console
|
|
20
|
-
console.
|
|
79
|
+
console.error('TCF API is not available or Twitter vendor ID is missing.');
|
|
21
80
|
}
|
|
22
|
-
}
|
|
81
|
+
};
|
|
82
|
+
// tslint:disable-next-line:no-console
|
|
83
|
+
console.log('allowedOnce', allowedOnce);
|
|
84
|
+
// tslint:disable-next-line:no-console
|
|
85
|
+
console.log('allowedOnce || isTwitterAllowed', allowedOnce || isTwitterAllowed);
|
|
23
86
|
// tslint:disable-next-line:no-console
|
|
24
|
-
console.log('
|
|
25
|
-
return React.createElement(
|
|
87
|
+
console.log('allowedOnce && isTwitterAllowed', allowedOnce && isTwitterAllowed);
|
|
88
|
+
return isTwitterAllowed ? (React.createElement(InteractiveWrapper, { attributes: element.attributes, element: element.value, key: element.key, source: url })) : (React.createElement(CardContainer, null,
|
|
89
|
+
React.createElement(Header, null,
|
|
90
|
+
React.createElement(CustomIconContainer, null,
|
|
91
|
+
React.createElement(InfoIcon, null)),
|
|
92
|
+
React.createElement(Title, null, "X (Twitter) content blocked")),
|
|
93
|
+
React.createElement(Paragraph, null,
|
|
94
|
+
"Please enable cookies and other technologies to view this content. You can update your cookies preferences any time using",
|
|
95
|
+
' ',
|
|
96
|
+
React.createElement(LinkPrivacyManager, { href: "#", onClick: handlePrivacyManagerClick }, "privacy manager.")),
|
|
97
|
+
React.createElement(EnableButton, { onClick: enableCookies }, "Enable cookies"),
|
|
98
|
+
React.createElement(AllowButton, { onClick: allowCookiesOnce }, "Allow cookies once")));
|
|
26
99
|
};
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHdpdHRlckVtYmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHdpdHRlci1lbWJlZC9Ud2l0dGVyRW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNuRCxPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsbUJBQW1CLEVBQ25CLE1BQU0sRUFDUCxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELGFBQWE7QUFDYixPQUFPLGtCQUFrQixNQUFNLHVDQUF1QyxDQUFDO0FBaUJ2RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWdDLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtJQUM1RSxNQUFNLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFaEUsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNuQixNQUFNLENBQUMsUUFBUSxDQUFDLHlCQUF5QixFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTtnQkFDOUQsSUFBSSxPQUFPLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDNUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUN2RCxDQUFD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
|