@times-components/ts-components 1.104.1-alpha.58 → 1.104.1-alpha.65
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 +41 -0
- package/dist/components/article-sidebar/ArticleSidebar.js +2 -2
- package/dist/components/article-sidebar/styles.js +3 -3
- package/dist/components/newsletter-puff/InlineNewsletterPuff.js +23 -25
- package/dist/components/newsletter-puff/NewsletterPuff.stories.js +2 -20
- package/dist/components/newsletter-puff/__tests__/AutoNewsletterPuff.test.js +2 -20
- package/dist/components/newsletter-puff/__tests__/InlineNewsletterPuff.test.js +24 -33
- package/dist/components/newsletter-puff/newsletter/Newsletter.d.ts +4 -5
- package/dist/components/newsletter-puff/newsletter/Newsletter.js +13 -10
- package/dist/components/offers-embed/OffersEmbed.d.ts +13 -0
- package/dist/components/offers-embed/OffersEmbed.js +26 -0
- package/dist/components/offers-embed/__tests__/OffersEmbed.test.d.ts +1 -0
- package/dist/components/offers-embed/__tests__/OffersEmbed.test.js +45 -0
- package/dist/components/recommended-articles/__tests__/formatters.test.js +4 -4
- package/dist/components/recommended-articles/formatters.d.ts +1 -0
- package/dist/components/recommended-articles/formatters.js +2 -2
- package/dist/components/social-embed/SocialMediaEmbed.d.ts +1 -1
- package/dist/components/social-embed/SocialMediaEmbed.js +17 -20
- package/dist/fixtures/preview-data/recommended-articles.d.ts +3 -0
- package/dist/fixtures/preview-data/recommended-articles.js +11 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/package.json +5 -5
- package/rnw.js +1 -1
- package/src/components/article-sidebar/ArticleSidebar.tsx +1 -1
- package/src/components/article-sidebar/__tests__/__snapshots__/index.test.tsx.snap +5 -5
- package/src/components/article-sidebar/styles.ts +3 -3
- package/src/components/newsletter-puff/InlineNewsletterPuff.tsx +34 -46
- package/src/components/newsletter-puff/NewsletterPuff.stories.tsx +1 -22
- package/src/components/newsletter-puff/__tests__/AutoNewsletterPuff.test.tsx +1 -22
- package/src/components/newsletter-puff/__tests__/InlineNewsletterPuff.test.tsx +31 -40
- package/src/components/newsletter-puff/__tests__/__snapshots__/InlineNewsletterPuff.test.tsx.snap +18 -35
- package/src/components/newsletter-puff/newsletter/Newsletter.tsx +26 -26
- package/src/components/offers-embed/OffersEmbed.tsx +66 -0
- package/src/components/offers-embed/__tests__/OffersEmbed.test.tsx +77 -0
- package/src/components/recommended-articles/__tests__/formatters.test.tsx +3 -5
- package/src/components/recommended-articles/formatters.ts +2 -1
- package/src/components/social-embed/SocialMediaEmbed.tsx +20 -25
- package/src/fixtures/preview-data/recommended-articles.ts +19 -0
- package/src/index.ts +1 -0
- package/src/types/externs.d.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,47 @@
|
|
|
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.110.1](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.110.0...@times-components/ts-components@1.110.1) (2024-11-05)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @times-components/ts-components
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [1.110.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.109.0...@times-components/ts-components@1.110.0) (2024-11-05)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **TMRS-488:** retrieve categoryPath - read more slice ([#3977](https://github.com/newsuk/times-components/issues/3977)) ([dfa47aa](https://github.com/newsuk/times-components/commit/dfa47aa4baf85b1a5083bb1d6160430fc395843f))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# [1.109.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.108.0...@times-components/ts-components@1.109.0) (2024-10-28)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
* **TMD-770:** Newsletter components not working ([#3963](https://github.com/newsuk/times-components/issues/3963)) ([647b060](https://github.com/newsuk/times-components/commit/647b060bc67cc76624ba5eb83db80654ee4eaf99))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# [1.108.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.107.0...@times-components/ts-components@1.108.0) (2024-10-28)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Features
|
|
40
|
+
|
|
41
|
+
* **TMPZ-546:** Puzzle sidebar headline Color should be updated ([#3974](https://github.com/newsuk/times-components/issues/3974)) ([d6443e9](https://github.com/newsuk/times-components/commit/d6443e95c6aaad2284cbbeacfe0a2d68a25bf1a8))
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
6
47
|
# [1.107.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.106.1...@times-components/ts-components@1.107.0) (2024-10-23)
|
|
7
48
|
|
|
8
49
|
|
|
@@ -14,8 +14,8 @@ export const ArticleSidebar = ({ sectionTitle, data, pageLink }) => {
|
|
|
14
14
|
React.createElement(Divider, null),
|
|
15
15
|
data.map(({ title, url, imgUrl }) => (React.createElement(React.Fragment, { key: title },
|
|
16
16
|
React.createElement(PuzzleContainer, { href: url, onClick: () => handleClick(fireAnalyticsEvent, 'puzzle sidebar: puzzle selected', `${title}`), className: "trigger-card-link" },
|
|
17
|
-
React.createElement(PuzzleImage, { src: imgUrl, alt: "Puzzle thumbnail" }),
|
|
17
|
+
React.createElement(PuzzleImage, { src: imgUrl, alt: "Puzzle category thumbnail" }),
|
|
18
18
|
React.createElement(ItemTitle, null, title)),
|
|
19
19
|
React.createElement(Divider, null))))));
|
|
20
20
|
};
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZVNpZGViYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hcnRpY2xlLXNpZGViYXIvQXJ0aWNsZVNpZGViYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBYSxNQUFNLE9BQU8sQ0FBQztBQUVsQyxPQUFPLEVBQ0wsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsV0FBVyxFQUNYLE9BQU8sRUFDUCxTQUFTLEVBQ1QsSUFBSSxFQUNKLGVBQWUsRUFDZixXQUFXLEVBQ1gsS0FBSyxFQUNMLGtCQUFrQixFQUNuQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFRakQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUE0QixDQUFDLEVBQ3RELFlBQVksRUFDWixJQUFJLEVBQ0osUUFBUSxFQUNULEVBQUUsRUFBRTtJQUNILE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxHQUFHLGtCQUFrQixFQUFFLENBQUM7SUFFcEQsT0FBTyxDQUNMLG9CQUFDLFNBQVM7UUFDUixvQkFBQyxJQUFJLElBQ0gsSUFBSSxFQUFFLFFBQVEsRUFDZCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQ1osV0FBVyxDQUFDLGtCQUFrQixFQUFFLGlDQUFpQyxDQUFDLEVBRXBFLFNBQVMsRUFBQyxTQUFTO1lBRW5CLG9CQUFDLGtCQUFrQjtnQkFDakIsb0JBQUMsS0FBSyxRQUFFLFlBQVksQ0FBUztnQkFDN0Isb0JBQUMsYUFBYTtvQkFDWixvQkFBQyxnQkFBZ0IsT0FBRyxDQUNOLENBQ0csQ0FDaEI7UUFFUCxvQkFBQyxXQUFXLHdEQUF1RDtRQUNuRSxvQkFBQyxPQUFPLE9BQUc7UUFFVixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUNwQyxvQkFBQyxLQUFLLENBQUMsUUFBUSxJQUFDLEdBQUcsRUFBRSxLQUFLO1lBQ3hCLG9CQUFDLGVBQWUsSUFDZCxJQUFJLEVBQUUsR0FBRyxFQUNULE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FDWixXQUFXLENBQ1Qsa0JBQWtCLEVBQ2xCLGlDQUFpQyxFQUNqQyxHQUFHLEtBQUssRUFBRSxDQUNYLEVBRUgsU0FBUyxFQUFDLG1CQUFtQjtnQkFFN0Isb0JBQUMsV0FBVyxJQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFDLDJCQUEyQixHQUFHO2dCQUM1RCxvQkFBQyxTQUFTLFFBQUUsS0FBSyxDQUFhLENBQ2Q7WUFDbEIsb0JBQUMsT0FBTyxPQUFHLENBQ0ksQ0FDbEIsQ0FBQyxDQUNRLENBQ2IsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
|
|
@@ -9,7 +9,7 @@ export const Container = styled.div `
|
|
|
9
9
|
padding-top: 12px;
|
|
10
10
|
border-style: solid none none none;
|
|
11
11
|
border-width: 3px;
|
|
12
|
-
border-color: #
|
|
12
|
+
border-color: #c05729;
|
|
13
13
|
`;
|
|
14
14
|
export const Description = styled.p `
|
|
15
15
|
display: block;
|
|
@@ -42,7 +42,7 @@ export const Link = styled.a `
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
h3 {
|
|
45
|
-
color: #
|
|
45
|
+
color: #c05729;
|
|
46
46
|
}
|
|
47
47
|
`;
|
|
48
48
|
export const TitleIconContainer = styled.div `
|
|
@@ -60,7 +60,7 @@ export const Title = styled.h3 `
|
|
|
60
60
|
`;
|
|
61
61
|
export const ChevronButton = styled.button `
|
|
62
62
|
background-color: #eeeeee;
|
|
63
|
-
color: #
|
|
63
|
+
color: #c05729;
|
|
64
64
|
border-radius: 50%;
|
|
65
65
|
border: none;
|
|
66
66
|
cursor: pointer;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
2
|
-
import { Mutation } from 'react-apollo';
|
|
1
|
+
import React, { useMemo, useState } from 'react';
|
|
3
2
|
import { GetNewsletter } from '@times-components/provider';
|
|
4
|
-
import { subscribeNewsletter as subscribeNewsletterMutation } from '@times-components/provider-queries';
|
|
5
3
|
import { Placeholder } from '@times-components/image';
|
|
6
4
|
import { capitalise } from '@times-components/utils';
|
|
7
5
|
import { Newsletter } from './newsletter/Newsletter';
|
|
8
6
|
import { TrackingContextProvider } from '../../helpers/tracking/TrackingContextProvider';
|
|
9
7
|
import { InpContainer } from './styles';
|
|
8
|
+
import { FetchProvider } from '../../helpers/fetch/FetchProvider';
|
|
9
|
+
import { ContentProvider } from '../save-star/ContentProvider';
|
|
10
10
|
export const InlineNewsletterPuff = ({ code, copy, headline, section }) => {
|
|
11
|
-
const [
|
|
12
|
-
const
|
|
11
|
+
const [url, setUrl] = useState(`/api/is-subscribed-newsletter/${code}`);
|
|
12
|
+
const fetchOptions = useMemo(() => ({ credentials: 'same-origin' }), []);
|
|
13
13
|
return (React.createElement(GetNewsletter, { code: code, ssr: false, debounceTimeMs: 0 }, ({ isLoading, error, newsletter }) => {
|
|
14
14
|
if (error) {
|
|
15
15
|
return null;
|
|
@@ -18,27 +18,25 @@ export const InlineNewsletterPuff = ({ code, copy, headline, section }) => {
|
|
|
18
18
|
return (React.createElement(InpContainer, { style: { height: 257 } },
|
|
19
19
|
React.createElement(Placeholder, null)));
|
|
20
20
|
}
|
|
21
|
-
if (newsletter.isSubscribed
|
|
21
|
+
if (newsletter.isSubscribed) {
|
|
22
22
|
return null;
|
|
23
23
|
}
|
|
24
|
-
return (React.createElement(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
} }, ({ intersectObserverRef }) => (React.createElement(Newsletter, { intersectObserverRef: intersectObserverRef, section: capitalise(section), justSubscribed: justSubscribed, justSubscribedError: justSubscribedError, headline: headline, updatingSubscription: updatingSubscription, copy: copy, code: code, subscribeNewsletter: subscribeNewsletter }))))));
|
|
24
|
+
return (React.createElement(FetchProvider, { url: url, options: fetchOptions },
|
|
25
|
+
React.createElement(TrackingContextProvider, { context: {
|
|
26
|
+
object: 'InlineNewsletterPuff',
|
|
27
|
+
attrs: {
|
|
28
|
+
article_parent_name: newsletter.title,
|
|
29
|
+
event_navigation_action: 'navigation'
|
|
30
|
+
}
|
|
31
|
+
}, scrolledEvent: {
|
|
32
|
+
object: 'NewsletterPuffButton',
|
|
33
|
+
attrs: {
|
|
34
|
+
event_navigation_name: 'widget : puff : sign up now : displayed',
|
|
35
|
+
event_navigation_browsing_method: 'automated',
|
|
36
|
+
event_navigation_action: 'navigation'
|
|
37
|
+
}
|
|
38
|
+
} }, ({ intersectObserverRef }) => (React.createElement(ContentProvider, null,
|
|
39
|
+
React.createElement(Newsletter, { intersectObserverRef: intersectObserverRef, section: capitalise(section), headline: headline, copy: copy, code: code, subscribeNewsletter: setUrl }))))));
|
|
42
40
|
}));
|
|
43
41
|
};
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lTmV3c2xldHRlclB1ZmYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9uZXdzbGV0dGVyLXB1ZmYvSW5saW5lTmV3c2xldHRlclB1ZmYudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUy9ELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsRUFDbkMsSUFBSSxFQUNKLElBQUksRUFDSixRQUFRLEVBQ1IsT0FBTyxFQUNtQixFQUFFLEVBQUU7SUFDOUIsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxRQUFRLENBQzVCLGlDQUFpQyxJQUFJLEVBQUUsQ0FDeEMsQ0FBQztJQUNGLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFekUsT0FBTyxDQUNMLG9CQUFDLGFBQWEsSUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLENBQUMsSUFDckQsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFPLEVBQUUsRUFBRTtRQUN6QyxJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLFNBQVMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM1QixPQUFPLENBQ0wsb0JBQUMsWUFBWSxJQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ2xDLG9CQUFDLFdBQVcsT0FBRyxDQUNGLENBQ2hCLENBQUM7U0FDSDtRQUVELElBQUksVUFBVSxDQUFDLFlBQVksRUFBRTtZQUMzQixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxDQUNMLG9CQUFDLGFBQWEsSUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxZQUFZO1lBQzVDLG9CQUFDLHVCQUF1QixJQUN0QixPQUFPLEVBQUU7b0JBQ1AsTUFBTSxFQUFFLHNCQUFzQjtvQkFDOUIsS0FBSyxFQUFFO3dCQUNMLG1CQUFtQixFQUFFLFVBQVUsQ0FBQyxLQUFLO3dCQUNyQyx1QkFBdUIsRUFBRSxZQUFZO3FCQUN0QztpQkFDRixFQUNELGFBQWEsRUFBRTtvQkFDYixNQUFNLEVBQUUsc0JBQXNCO29CQUM5QixLQUFLLEVBQUU7d0JBQ0wscUJBQXFCLEVBQ25CLHlDQUF5Qzt3QkFDM0MsZ0NBQWdDLEVBQUUsV0FBVzt3QkFDN0MsdUJBQXVCLEVBQUUsWUFBWTtxQkFDdEM7aUJBQ0YsSUFFQSxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FDN0Isb0JBQUMsZUFBZTtnQkFDZCxvQkFBQyxVQUFVLElBQ1Qsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQzFDLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQzVCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLElBQUksRUFBRSxJQUFJLEVBQ1YsSUFBSSxFQUFFLElBQUksRUFDVixtQkFBbUIsRUFBRSxNQUFNLEdBQzNCLENBQ2MsQ0FDbkIsQ0FDdUIsQ0FDWixDQUNqQixDQUFDO0lBQ0osQ0FBQyxDQUNhLENBQ2pCLENBQUM7QUFDSixDQUFDLENBQUMifQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { showcaseConverter } from '@times-components/storybook';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { MockedProvider } from '@times-components/provider-test-tools';
|
|
4
|
-
import { getNewsletter
|
|
4
|
+
import { getNewsletter } from '@times-components/provider-queries';
|
|
5
5
|
import { AutoNewsletterPuff } from './AutoNewsletterPuff';
|
|
6
6
|
import { InlineNewsletterPuff } from './InlineNewsletterPuff';
|
|
7
7
|
import { TrackingContextProvider } from '../../helpers/tracking/TrackingContextProvider';
|
|
@@ -25,24 +25,6 @@ const mocks = [
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
delay: 1000,
|
|
31
|
-
request: {
|
|
32
|
-
query: subscribeNewsletter,
|
|
33
|
-
variables: {
|
|
34
|
-
code: 'TNL-101'
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
result: {
|
|
38
|
-
data: {
|
|
39
|
-
subscribeNewsletter: {
|
|
40
|
-
id: 'a2l6E000000CdHzQAK',
|
|
41
|
-
isSubscribed: true,
|
|
42
|
-
__typename: 'Newsletter'
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
28
|
}
|
|
47
29
|
];
|
|
48
30
|
const showcase = {
|
|
@@ -78,4 +60,4 @@ const showcase = {
|
|
|
78
60
|
name: 'Typescript Component/In Article/Newsletter Puffs'
|
|
79
61
|
};
|
|
80
62
|
showcaseConverter(module, showcase);
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmV3c2xldHRlclB1ZmYuc3Rvcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL25ld3NsZXR0ZXItcHVmZi9OZXdzbGV0dGVyUHVmZi5zdG9yaWVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUV4RixPQUFPLGVBQWUsTUFBTSxvREFBb0QsQ0FBQztBQUVqRixNQUFNLEtBQUssR0FBRztJQUNaO1FBQ0UsT0FBTyxFQUFFO1lBQ1AsS0FBSyxFQUFFLGFBQWE7WUFDcEIsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxNQUFNLEVBQUU7WUFDTixJQUFJLEVBQUU7Z0JBQ0osVUFBVSxFQUFFO29CQUNWLEVBQUUsRUFBRSxvQkFBb0I7b0JBQ3hCLFlBQVksRUFBRSxLQUFLO29CQUNuQixLQUFLLEVBQUUsZUFBZTtvQkFDdEIsVUFBVSxFQUFFLFlBQVk7aUJBQ3pCO2FBQ0Y7U0FDRjtLQUNGO0NBQ0YsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUFHO0lBQ2YsUUFBUSxFQUFFO1FBQ1I7WUFDRSw0Q0FBNEM7WUFDNUMsU0FBUyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQU8sRUFBRSxFQUFFLENBQUMsQ0FDNUIsb0JBQUMsY0FBYyxJQUFDLEtBQUssRUFBRSxLQUFLOztnQkFDVCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7Z0JBQzVELG9CQUFDLHVCQUF1QixJQUN0QixlQUFlLEVBQUUsZUFBZSxFQUNoQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUU7b0JBRXpDLG9CQUFDLGtCQUFrQixJQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLEVBQzNDLElBQUksRUFBRSxJQUFJLENBQ1IsTUFBTSxFQUNOLDhGQUE4RixDQUMvRixFQUNELE9BQU8sRUFBQyxPQUFPLEdBQ2YsQ0FDc0IsQ0FDWCxDQUNsQjtZQUVELElBQUksRUFBRSxzQkFBc0I7WUFDNUIsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsT0FBTztTQUNkO1FBQ0Q7WUFDRSw0Q0FBNEM7WUFDNUMsU0FBUyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQU8sRUFBRSxFQUFFLENBQUMsQ0FDNUIsb0JBQUMsY0FBYyxJQUFDLEtBQUssRUFBRSxLQUFLO2dCQUMxQixvQkFBQyx1QkFBdUIsSUFDdEIsZUFBZSxFQUFFLGVBQWUsRUFDaEMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFO29CQUV6QyxvQkFBQyxvQkFBb0IsSUFDbkIsT0FBTyxFQUFDLE1BQU0sRUFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLEVBQzNDLElBQUksRUFBRSxJQUFJLENBQ1IsTUFBTSxFQUNOLDhGQUE4RixDQUMvRixHQUNELENBQ3NCLENBQ1gsQ0FDbEI7WUFFRCxJQUFJLEVBQUUsd0JBQXdCO1lBQzlCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUFFLE9BQU87U0FDZDtRQUNEO1lBQ0UsNENBQTRDO1lBQzVDLFNBQVMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFPLEVBQUUsRUFBRSxDQUFDLENBQzVCLG9CQUFDLHFCQUFxQixJQUNwQixPQUFPLEVBQUMsT0FBTyxFQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxFQUMzQyxJQUFJLEVBQUUsSUFBSSxDQUNSLE1BQU0sRUFDTiw4RkFBOEYsQ0FDL0YsR0FDRCxDQUNIO1lBRUQsSUFBSSxFQUFFLHlCQUF5QjtZQUMvQixRQUFRLEVBQUUsS0FBSztZQUNmLElBQUksRUFBRSxPQUFPO1NBQ2Q7S0FDRjtJQUNELElBQUksRUFBRSxrREFBa0Q7Q0FDekQsQ0FBQztBQUVGLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyJ9
|
|
@@ -3,7 +3,7 @@ import { cleanup, render } from '@testing-library/react';
|
|
|
3
3
|
import { AutoNewsletterPuff } from '../AutoNewsletterPuff';
|
|
4
4
|
import FakeIntersectionObserver from '../../../test-utils/FakeIntersectionObserver';
|
|
5
5
|
import { MockedProvider } from '@times-components/provider-test-tools';
|
|
6
|
-
import { getNewsletter
|
|
6
|
+
import { getNewsletter } from '@times-components/provider-queries';
|
|
7
7
|
const defaultProps = {
|
|
8
8
|
code: '123',
|
|
9
9
|
copy: 'abc',
|
|
@@ -28,24 +28,6 @@ const mocks = [
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
delay: 1000,
|
|
34
|
-
request: {
|
|
35
|
-
query: subscribeNewsletter,
|
|
36
|
-
variables: {
|
|
37
|
-
code: 'TNL-101'
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
result: {
|
|
41
|
-
data: {
|
|
42
|
-
subscribeNewsletter: {
|
|
43
|
-
id: 'a2l6E000000CdHzQAK',
|
|
44
|
-
isSubscribed: true,
|
|
45
|
-
__typename: 'Newsletter'
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
31
|
}
|
|
50
32
|
];
|
|
51
33
|
const renderPuff = () => render(React.createElement(MockedProvider, { mocks: mocks },
|
|
@@ -125,4 +107,4 @@ describe('<AutoNewsletterPuff>', () => {
|
|
|
125
107
|
});
|
|
126
108
|
});
|
|
127
109
|
});
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0b05ld3NsZXR0ZXJQdWZmLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9uZXdzbGV0dGVyLXB1ZmYvX190ZXN0c19fL0F1dG9OZXdzbGV0dGVyUHVmZi50ZXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLHdCQUF3QixNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFbkUsTUFBTSxZQUFZLEdBQUc7SUFDbkIsSUFBSSxFQUFFLEtBQUs7SUFDWCxJQUFJLEVBQUUsS0FBSztJQUNYLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQUM7QUFFRixNQUFNLEtBQUssR0FBRztJQUNaO1FBQ0UsT0FBTyxFQUFFO1lBQ1AsS0FBSyxFQUFFLGFBQWE7WUFDcEIsU0FBUyxFQUFFO2dCQUNULElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxNQUFNLEVBQUU7WUFDTixJQUFJLEVBQUU7Z0JBQ0osVUFBVSxFQUFFO29CQUNWLEVBQUUsRUFBRSxvQkFBb0I7b0JBQ3hCLFlBQVksRUFBRSxLQUFLO29CQUNuQixLQUFLLEVBQUUsZUFBZTtvQkFDdEIsVUFBVSxFQUFFLFlBQVk7aUJBQ3pCO2FBQ0Y7U0FDRjtLQUNGO0NBQ0YsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLEdBQUcsRUFBRSxDQUN0QixNQUFNLENBQ0osb0JBQUMsY0FBYyxJQUFDLEtBQUssRUFBRSxLQUFLO0lB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
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { delay } from '@times-components/test-utils';
|
|
3
|
-
import { render,
|
|
3
|
+
import { render, cleanup, fireEvent } from '@testing-library/react';
|
|
4
4
|
import '@testing-library/jest-dom';
|
|
5
5
|
import { MockedProvider } from '@times-components/provider-test-tools';
|
|
6
6
|
import mockDate from 'mockdate';
|
|
7
|
-
import { getNewsletter
|
|
7
|
+
import { getNewsletter } from '@times-components/provider-queries';
|
|
8
8
|
import { InlineNewsletterPuff } from '../InlineNewsletterPuff';
|
|
9
9
|
import { TrackingContextProvider } from '../../../helpers/tracking/TrackingContextProvider';
|
|
10
|
+
import { useFetch } from '../../../helpers/fetch/FetchProvider';
|
|
10
11
|
import FakeIntersectionObserver from '../../../test-utils/FakeIntersectionObserver';
|
|
12
|
+
jest.mock('../../../helpers/fetch/FetchProvider', () => ({
|
|
13
|
+
...jest.requireActual('../../../helpers/fetch/FetchProvider'),
|
|
14
|
+
useFetch: jest.fn()
|
|
15
|
+
}));
|
|
11
16
|
const renderComponent = (analyticsStream, mocks = [
|
|
12
17
|
{
|
|
13
18
|
request: {
|
|
@@ -26,25 +31,6 @@ const renderComponent = (analyticsStream, mocks = [
|
|
|
26
31
|
}
|
|
27
32
|
}
|
|
28
33
|
}
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
delay: 50,
|
|
32
|
-
request: {
|
|
33
|
-
query: subscribeNewsletter,
|
|
34
|
-
variables: {
|
|
35
|
-
code: 'TNL-119'
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
result: {
|
|
39
|
-
data: {
|
|
40
|
-
subscribeNewsletter: {
|
|
41
|
-
id: 'a2l6E000000CdHzQAK',
|
|
42
|
-
isSubscribed: true,
|
|
43
|
-
title: 'RED BOX',
|
|
44
|
-
__typename: 'Newsletter'
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
34
|
}
|
|
49
35
|
]) => render(React.createElement(MockedProvider, { mocks: mocks },
|
|
50
36
|
React.createElement(TrackingContextProvider, { analyticsStream: analyticsStream, context: { component: 'ArticleSkeleton' } },
|
|
@@ -67,17 +53,6 @@ describe('Inline Newsletter Puff', () => {
|
|
|
67
53
|
const component = renderComponent();
|
|
68
54
|
expect(component.baseElement).toMatchSnapshot();
|
|
69
55
|
});
|
|
70
|
-
it('renders signup state', async () => {
|
|
71
|
-
const component = renderComponent();
|
|
72
|
-
await component.findAllByText('Sign up with one click');
|
|
73
|
-
expect(component.baseElement).toMatchSnapshot();
|
|
74
|
-
});
|
|
75
|
-
it('renders loading state state', async () => {
|
|
76
|
-
const component = renderComponent();
|
|
77
|
-
const oneClickSignUp = await component.findAllByText('Sign up with one click');
|
|
78
|
-
fireEvent.click(oneClickSignUp[0]);
|
|
79
|
-
expect(component.baseElement).toMatchSnapshot();
|
|
80
|
-
});
|
|
81
56
|
it('renders null when is already subscribed', async () => {
|
|
82
57
|
const component = renderComponent(jest.fn(), [
|
|
83
58
|
{
|
|
@@ -102,6 +77,19 @@ describe('Inline Newsletter Puff', () => {
|
|
|
102
77
|
await delay(0);
|
|
103
78
|
expect(component.baseElement).toMatchSnapshot();
|
|
104
79
|
});
|
|
80
|
+
it('renders signup state', async () => {
|
|
81
|
+
useFetch.mockReturnValue({ data: { isSubscribed: false } });
|
|
82
|
+
const component = renderComponent();
|
|
83
|
+
await component.findAllByText('Sign up with one click');
|
|
84
|
+
expect(component.baseElement).toMatchSnapshot();
|
|
85
|
+
});
|
|
86
|
+
it('renders loading state state', async () => {
|
|
87
|
+
useFetch.mockReturnValue({ data: { isSubscribed: false } });
|
|
88
|
+
const component = renderComponent();
|
|
89
|
+
const oneClickSignUp = await component.findAllByText('Sign up with one click');
|
|
90
|
+
fireEvent.click(oneClickSignUp[0]);
|
|
91
|
+
expect(component.baseElement).toMatchSnapshot();
|
|
92
|
+
});
|
|
105
93
|
it('renders signup view when not already subscribed', async () => {
|
|
106
94
|
const component = renderComponent();
|
|
107
95
|
await delay(0);
|
|
@@ -119,6 +107,9 @@ describe('Inline Newsletter Puff', () => {
|
|
|
119
107
|
});
|
|
120
108
|
it('Sign up with one click : displayed', async () => {
|
|
121
109
|
const analyticsStream = jest.fn();
|
|
110
|
+
useFetch.mockReturnValue({
|
|
111
|
+
data: { isSubscribed: false }
|
|
112
|
+
});
|
|
122
113
|
const component = renderComponent(analyticsStream);
|
|
123
114
|
await component.findAllByText('Sign up with one click');
|
|
124
115
|
FakeIntersectionObserver.intersect();
|
|
@@ -137,4 +128,4 @@ describe('Inline Newsletter Puff', () => {
|
|
|
137
128
|
});
|
|
138
129
|
});
|
|
139
130
|
});
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lTmV3c2xldHRlclB1ZmYudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL25ld3NsZXR0ZXItcHVmZi9fX3Rlc3RzX18vSW5saW5lTmV3c2xldHRlclB1ZmYudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV2RSxPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFFaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVoRSxPQUFPLHdCQUF3QixNQUFNLDhDQUE4QyxDQUFDO0FBRXBGLElBQUksQ0FBQyxJQUFJLENBQUMsc0NBQXNDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN2RCxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsc0NBQXNDLENBQUM7SUFDN0QsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7Q0FDcEIsQ0FBQyxDQUFDLENBQUM7QUFFSixNQUFNLGVBQWUsR0FBRyxDQUN0QixlQUE0QixFQUM1QixRQUFlO0lBQ2I7UUFDRSxPQUFPLEVBQUU7WUFDUCxLQUFLLEVBQUUsYUFBYTtZQUNwQixTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxF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
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
declare type NewsletterProps = {
|
|
2
2
|
intersectObserverRef: (ref: HTMLElement | null) => void;
|
|
3
3
|
section?: string;
|
|
4
|
-
justSubscribed: boolean;
|
|
5
|
-
justSubscribedError: boolean;
|
|
6
4
|
headline: string;
|
|
7
|
-
updatingSubscription: boolean;
|
|
8
5
|
copy: string;
|
|
9
6
|
code: string;
|
|
10
|
-
subscribeNewsletter:
|
|
7
|
+
subscribeNewsletter: any;
|
|
8
|
+
loading?: boolean;
|
|
9
|
+
error?: string;
|
|
11
10
|
};
|
|
12
|
-
export declare const Newsletter: ({ intersectObserverRef, section,
|
|
11
|
+
export declare const Newsletter: ({ intersectObserverRef, section, headline, copy, code, subscribeNewsletter, loading, error }: NewsletterProps) => JSX.Element;
|
|
13
12
|
export {};
|
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
2
|
import { NewsletterPuffButton } from '../newsletter-puff-button/NewsletterPuffButton';
|
|
3
3
|
import { NewsletterPuffLink } from '../newsletter-puff-link/NewsletterPuffLink';
|
|
4
4
|
import { LoadingOverlay } from '../loading-overlay/LoadingOverlay';
|
|
5
5
|
import { InpCopy, InpPreferencesContainer, InpSignupContainer, InpSignupCTAContainer, InpSignupHeadline, InpSubscribedContainer } from './styles';
|
|
6
6
|
import { InpContainer } from '../styles';
|
|
7
|
-
export const Newsletter = ({ intersectObserverRef, section,
|
|
7
|
+
export const Newsletter = ({ intersectObserverRef, section, headline, copy, code, subscribeNewsletter, loading, error }) => {
|
|
8
|
+
const [justSubscribed, setJustSubscribed] = useState(false);
|
|
8
9
|
const PuffButton = (style) => (React.createElement(InpSignupCTAContainer, { ref: intersectObserverRef, childStyle: style },
|
|
9
|
-
React.createElement(NewsletterPuffButton, { style: style, updatingSubscription:
|
|
10
|
-
if (!
|
|
11
|
-
|
|
10
|
+
React.createElement(NewsletterPuffButton, { style: style, updatingSubscription: loading, onPress: () => {
|
|
11
|
+
if (!loading) {
|
|
12
|
+
setJustSubscribed(true);
|
|
13
|
+
subscribeNewsletter(`/api/subscribe-newsletter/${code}`);
|
|
12
14
|
}
|
|
13
15
|
} })));
|
|
14
16
|
return (React.createElement(React.Fragment, null,
|
|
15
17
|
React.createElement(InpContainer, { section: section },
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
loading && React.createElement(LoadingOverlay, null),
|
|
19
|
+
!error &&
|
|
20
|
+
justSubscribed && (React.createElement(InpSubscribedContainer, null,
|
|
18
21
|
React.createElement(InpCopy, null,
|
|
19
22
|
"You've succesfully signed up to",
|
|
20
23
|
' ',
|
|
@@ -23,13 +26,13 @@ export const Newsletter = ({ intersectObserverRef, section, justSubscribed, just
|
|
|
23
26
|
" "),
|
|
24
27
|
React.createElement(NewsletterPuffLink, null)),
|
|
25
28
|
React.createElement(InpPreferencesContainer, null))),
|
|
26
|
-
|
|
29
|
+
error && (React.createElement(InpSubscribedContainer, null,
|
|
27
30
|
React.createElement(InpCopy, null,
|
|
28
31
|
"An error occurred. Please use the link below.",
|
|
29
32
|
React.createElement(NewsletterPuffLink, null)),
|
|
30
33
|
React.createElement(InpPreferencesContainer, null))),
|
|
31
34
|
!justSubscribed &&
|
|
32
|
-
!
|
|
35
|
+
!error && (React.createElement(InpSignupContainer, null,
|
|
33
36
|
React.createElement(InpCopy, null,
|
|
34
37
|
React.createElement(InpSignupHeadline, null,
|
|
35
38
|
headline,
|
|
@@ -38,4 +41,4 @@ export const Newsletter = ({ intersectObserverRef, section, justSubscribed, just
|
|
|
38
41
|
PuffButton('link')),
|
|
39
42
|
PuffButton('button'))))));
|
|
40
43
|
};
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmV3c2xldHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL25ld3NsZXR0ZXItcHVmZi9uZXdzbGV0dGVyL05ld3NsZXR0ZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRXhDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQ0wsT0FBTyxFQUNQLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdkIsTUFBTSxVQUFVLENBQUM7QUFFbEIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQWF6QyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxFQUN6QixvQkFBb0IsRUFDcEIsT0FBTyxFQUNQLFFBQVEsRUFDUixJQUFJLEVBQ0osSUFBSSxFQUNKLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsS0FBSyxFQUNXLEVBQUUsRUFBRTtJQUNwQixNQUFNLENBQUMsY0FBYyxFQUFFLGlCQUFpQixDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsQ0FDL0Msb0JBQUMscUJBQXFCLElBQUMsR0FBRyxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxLQUFLO1FBQ2pFLG9CQUFDLG9CQUFvQixJQUNuQixLQUFLLEVBQUUsS0FBSyxFQUNaLG9CQUFvQixFQUFFLE9BQU8sRUFDN0IsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNaLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN4QixtQkFBbUIsQ0FBQyw2QkFBNkIsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDMUQ7WUFDSCxDQUFDLEdBQ0QsQ0FDb0IsQ0FDekIsQ0FBQztJQUNGLE9BQU8sQ0FDTCxvQkFBQyxLQUFLLENBQUMsUUFBUTtRQUNiLG9CQUFDLFlBQVksSUFBQyxPQUFPLEVBQUUsT0FBTztZQUMzQixPQUFPLElBQUksb0JBQUMsY0FBYyxPQUFHO1lBQzdCLENBQUMsS0FBSztnQkFDTCxjQUFjLElBQUksQ0FDaEIsb0JBQUMsc0JBQXNCO2dCQUNyQixvQkFBQyxPQUFPOztvQkFDMEIsR0FBRztvQkFDbkMsb0JBQUMsaUJBQWlCO3dCQUFFLEdBQUcsUUFBUSxHQUFHOzRCQUFzQjtvQkFDeEQsb0JBQUMsa0JBQWtCLE9BQUcsQ0FDZDtnQkFDVixvQkFBQyx1QkFBdUIsT0FBRyxDQUNKLENBQzFCO1lBQ0YsS0FBSyxJQUFJLENBQ1Isb0JBQUMsc0JBQXNCO2dCQUNyQixvQkFBQyxPQUFPOztvQkFFTixvQkFBQyxrQkFBa0IsT0FBRyxDQUNkO2dCQUNWLG9CQUFDLHVCQUF1QixPQUFHLENBQ0osQ0FDMUI7WUFDQSxDQUFDLGNBQWM7Z0JBQ2QsQ0FBQyxLQUFLLElBQUksQ0FDUixvQkFBQyxrQkFBa0I7Z0JBQ2pCLG9CQUFDLE9BQU87b0JBQ04sb0JBQUMsaUJBQWlCO3dCQUFFLFFBQVE7NEJBQXNCO29CQUNqRCxHQUFHLElBQUksR0FBRztvQkFDVixVQUFVLENBQUMsTUFBTSxDQUFDLENBQ1g7Z0JBQ1QsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUNGLENBQ3RCLENBQ1UsQ0FDQSxDQUNsQixDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type OffersEmbedProps = {
|
|
3
|
+
element: any;
|
|
4
|
+
url: string;
|
|
5
|
+
vendorName: string;
|
|
6
|
+
id: string;
|
|
7
|
+
};
|
|
8
|
+
declare global {
|
|
9
|
+
interface Window {
|
|
10
|
+
__tcfapi?: (command: string, version: number, callback: (data: any, success: boolean) => void) => void;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export declare const OffersEmbed: React.FC<OffersEmbedProps>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
export const OffersEmbed = ({ element, url, id }) => {
|
|
3
|
+
useEffect(() => {
|
|
4
|
+
const wrapperId = `interactiveWrapper`;
|
|
5
|
+
const interactiveWrapper = document.getElementById(wrapperId);
|
|
6
|
+
const isBestSellingHolidays = element.attributes.src.includes('best-selling-holidays');
|
|
7
|
+
if (interactiveWrapper) {
|
|
8
|
+
interactiveWrapper.innerHTML = '';
|
|
9
|
+
if (isBestSellingHolidays) {
|
|
10
|
+
const travelOffersLink = document.createElement('link');
|
|
11
|
+
travelOffersLink.href =
|
|
12
|
+
'https://components.timesdev.tools/lib2/times-travel-offers-new-1.0.0/times-travel-offers-new.html';
|
|
13
|
+
travelOffersLink.rel = 'import';
|
|
14
|
+
document.head.appendChild(travelOffersLink);
|
|
15
|
+
const travelOffersComponent = document.createElement('times-travel-offers-new');
|
|
16
|
+
travelOffersComponent.setAttribute('src', 'https://components.timesdev.tools/lib2/times-travel-offers-new-1.0.0/times-travel-offers-new.html');
|
|
17
|
+
travelOffersComponent.setAttribute('offers', 'bsh');
|
|
18
|
+
travelOffersComponent.setAttribute('title', 'Bestselling holidays');
|
|
19
|
+
travelOffersComponent.setAttribute('description', 'Brought to you by Times Travel.');
|
|
20
|
+
interactiveWrapper.appendChild(travelOffersComponent);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}, [element, url, id]);
|
|
24
|
+
return React.createElement("div", { id: "interactiveWrapper" });
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2ZmZXJzRW1iZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9vZmZlcnMtZW1iZWQvT2ZmZXJzRW1iZWQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBcUJ6QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQStCLENBQUMsRUFDdEQsT0FBTyxFQUNQLEdBQUcsRUFDSCxFQUFFLEVBQ0gsRUFBRSxFQUFFO0lBQ0gsU0FBUyxDQUNQLEdBQUcsRUFBRTtRQUNILE1BQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDO1FBQ3ZDLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5RCxNQUFNLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FDM0QsdUJBQXVCLENBQ3hCLENBQUM7UUFFRixJQUFJLGtCQUFrQixFQUFFO1lBQ3RCLGtCQUFrQixDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDbEMsSUFBSSxxQkFBcUIsRUFBRTtnQkFDekIsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4RCxnQkFBZ0IsQ0FBQyxJQUFJO29CQUNuQixtR0FBbUcsQ0FBQztnQkFDdEcsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQztnQkFDaEMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFFNUMsTUFBTSxxQkFBcUIsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUNsRCx5QkFBeUIsQ0FDMUIsQ0FBQztnQkFDRixxQkFBcUIsQ0FBQyxZQUFZLENBQ2hDLEtBQUssRUFDTCxtR0FBbUcsQ0FDcEcsQ0FBQztnQkFDRixxQkFBcUIsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNwRCxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLHNCQUFzQixDQUFDLENBQUM7Z0JBQ3BFLHFCQUFxQixDQUFDLFlBQVksQ0FDaEMsYUFBYSxFQUNiLGlDQUFpQyxDQUNsQyxDQUFDO2dCQUVGLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2FBQ3ZEO1NBQ0Y7SUFDSCxDQUFDLEVBQ0QsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUNuQixDQUFDO0lBRUYsT0FBTyw2QkFBSyxFQUFFLEVBQUMsb0JBQW9CLEdBQUcsQ0FBQztBQUN6QyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '@testing-library/react';
|
|
3
|
+
import { OffersEmbed } from '../OffersEmbed';
|
|
4
|
+
import '@testing-library/jest-dom';
|
|
5
|
+
describe('OffersEmbed Component', () => {
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
// Clear the document head and body before each test
|
|
8
|
+
document.head.innerHTML = '';
|
|
9
|
+
document.body.innerHTML = '<div id="interactiveWrapper"></div>';
|
|
10
|
+
});
|
|
11
|
+
it('should render the travel offers component when `isBestSellingHolidays` is true', () => {
|
|
12
|
+
const mockElement = {
|
|
13
|
+
attributes: {
|
|
14
|
+
src: 'https://www.thetimes.co.uk/travel/offers-component/best-selling-holidays/'
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const url = 'https://www.thetimes.co.uk';
|
|
18
|
+
const id = 'test-id';
|
|
19
|
+
render(React.createElement(OffersEmbed, { element: mockElement, url: url, id: id, vendorName: '' }));
|
|
20
|
+
const travelOffersLink = document.querySelector('link[href="https://components.timesdev.tools/lib2/times-travel-offers-new-1.0.0/times-travel-offers-new.html"]');
|
|
21
|
+
const travelOffersComponent = document.querySelector('times-travel-offers-new');
|
|
22
|
+
expect(travelOffersLink).toBeInTheDocument();
|
|
23
|
+
expect(travelOffersLink).toHaveAttribute('rel', 'import');
|
|
24
|
+
expect(travelOffersComponent).toBeInTheDocument();
|
|
25
|
+
expect(travelOffersComponent).toHaveAttribute('src', 'https://components.timesdev.tools/lib2/times-travel-offers-new-1.0.0/times-travel-offers-new.html');
|
|
26
|
+
expect(travelOffersComponent).toHaveAttribute('offers', 'bsh');
|
|
27
|
+
expect(travelOffersComponent).toHaveAttribute('title', 'Bestselling holidays');
|
|
28
|
+
expect(travelOffersComponent).toHaveAttribute('description', 'Brought to you by Times Travel.');
|
|
29
|
+
});
|
|
30
|
+
it('should not render the travel offers component when `isBestSellingHolidays` is false', () => {
|
|
31
|
+
const mockElement = {
|
|
32
|
+
attributes: {
|
|
33
|
+
src: 'https://www.thetimes.co.uk/travel/offers-component/other-holidays/'
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const url = 'https://www.thetimes.co.uk';
|
|
37
|
+
const id = 'test-id';
|
|
38
|
+
render(React.createElement(OffersEmbed, { element: mockElement, url: url, id: id, vendorName: '' }));
|
|
39
|
+
const travelOffersLink = document.querySelector('link[href="https://components.timesdev.tools/lib2/times-travel-offers-new-1.0.0/times-travel-offers-new.html"]');
|
|
40
|
+
const travelOffersComponent = document.querySelector('times-travel-offers-new');
|
|
41
|
+
expect(travelOffersLink).not.toBeInTheDocument();
|
|
42
|
+
expect(travelOffersComponent).not.toBeInTheDocument();
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2ZmZXJzRW1iZWQudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL29mZmVycy1lbWJlZC9fX3Rlc3RzX18vT2ZmZXJzRW1iZWQudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTywyQkFBMkIsQ0FBQztBQUVuQyxRQUFRLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO0lBQ3JDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxvREFBb0Q7UUFDcEQsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQzdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLHFDQUFxQyxDQUFDO0lBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGdGQUFnRixFQUFFLEdBQUcsRUFBRTtRQUN4RixNQUFNLFdBQVcsR0FBRztZQUNsQixVQUFVLEVBQUU7Z0JBQ1YsR0FBRyxFQUNELDJFQUEyRTthQUM5RTtTQUNGLENBQUM7UUFDRixNQUFNLEdBQUcsR0FBRyw0QkFBNEIsQ0FBQztRQUN6QyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUM7UUFFckIsTUFBTSxDQUNKLG9CQUFDLFdBQVcsSUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxHQUFJLENBQ3hFLENBQUM7UUFFRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQzdDLGdIQUFnSCxDQUNqSCxDQUFDO1FBQ0YsTUFBTSxxQkFBcUIsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUNsRCx5QkFBeUIsQ0FDMUIsQ0FBQztRQUVGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0MsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUxRCxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLGVBQWUsQ0FDM0MsS0FBSyxFQUNMLG1HQUFtRyxDQUNwRyxDQUFDO1FBQ0YsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvRCxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxlQUFlLENBQzNDLE9BQU8sRUFDUCxzQkFBc0IsQ0FDdkIsQ0FBQztRQUNGLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLGVBQWUsQ0FDM0MsYUFBYSxFQUNiLGlDQUFpQyxDQUNsQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMscUZBQXFGLEVBQUUsR0FBRyxFQUFFO1FBQzdGLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLFVBQVUsRUFBRTtnQkFDVixHQUFHLEVBQ0Qsb0VBQW9FO2FBQ3ZFO1NBQ0YsQ0FBQztRQUNGLE1BQU0sR0FBRyxHQUFHLDRCQUE0QixDQUFDO1FBQ3pDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUVyQixNQUFNLENBQ0osb0JBQUMsV0FBVyxJQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEdBQUksQ0FDeEUsQ0FBQztRQUVGLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FDN0MsZ0hBQWdILENBQ2pILENBQUM7UUFDRixNQUFNLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQ2xELHlCQUF5QixDQUMxQixDQUFDO1FBRUYsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDakQsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDeEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9
|