@times-components/ts-components 1.42.0 → 1.43.0

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 CHANGED
@@ -3,6 +3,17 @@
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.43.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.42.0...@times-components/ts-components@1.43.0) (2022-06-16)
7
+
8
+
9
+ ### Features
10
+
11
+ * **TDP-1967:** recommended articles analytics ([#2983](https://github.com/newsuk/times-components/issues/2983)) ([425ddb1](https://github.com/newsuk/times-components/commit/425ddb11616ea6f0e6a491160cc64a107d6a6323))
12
+
13
+
14
+
15
+
16
+
6
17
  # [1.42.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.41.1...@times-components/ts-components@1.42.0) (2022-06-15)
7
18
 
8
19
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  export declare const RecommendedArticles: React.FC<{
3
- section: string;
3
+ heading: string;
4
4
  isVisible?: boolean;
5
5
  analyticsStream?: (evt: any) => void;
6
6
  }>;
@@ -1,13 +1,26 @@
1
1
  import React from 'react';
2
2
  import RelatedArticles from '@times-components/related-articles';
3
3
  import { useFetch } from '../../helpers/fetch/FetchProvider';
4
+ import { useTrackingContext } from '../../helpers/tracking/TrackingContextProvider';
4
5
  import { getRelatedArticlesSlice } from './formatters';
5
- export const RecommendedArticles = ({ section, isVisible, analyticsStream }) => {
6
+ export const RecommendedArticles = ({ heading, isVisible, analyticsStream }) => {
6
7
  const { loading, error, data } = useFetch();
7
8
  if (loading || error || data === undefined) {
8
9
  return null;
9
10
  }
11
+ const { fireAnalyticsEvent } = useTrackingContext();
12
+ const slice = getRelatedArticlesSlice(data.recommendations);
13
+ const onClickHandler = (__, article) => {
14
+ const found = slice.items.find(item => item.article.shortIdentifier === article.url.slice(-9));
15
+ if (fireAnalyticsEvent) {
16
+ fireAnalyticsEvent({
17
+ action: 'Clicked',
18
+ object: 'RecommendedArticles',
19
+ attrs: { article_parent_name: found ? found.article.headline : '' }
20
+ });
21
+ }
22
+ };
10
23
  return (React.createElement("div", { id: "recommended-articles", style: { display: isVisible ? 'block' : 'none' } },
11
- React.createElement(RelatedArticles, { heading: `Today's ${section}`, slice: getRelatedArticlesSlice(data.recommendations), isVisible: true, analyticsStream: analyticsStream })));
24
+ React.createElement(RelatedArticles, { heading: heading, slice: slice, isVisible: true, onPress: onClickHandler, analyticsStream: analyticsStream })));
12
25
  };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRBcnRpY2xlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3JlY29tbWVuZGVkLWFydGljbGVzL1JlY29tbWVuZGVkQXJ0aWNsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixPQUFPLGVBQWUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVqRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUkzQixDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO0lBQy9DLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFFBQVEsRUFBTyxDQUFDO0lBRWpELElBQUksT0FBTyxJQUFJLEtBQUssSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1FBQzFDLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPLENBQ0wsNkJBQ0UsRUFBRSxFQUFDLHNCQUFzQixFQUN6QixLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtRQUVoRCxvQkFBQyxlQUFlLElBQ2QsT0FBTyxFQUFFLFdBQVcsT0FBTyxFQUFFLEVBQzdCLEtBQUssRUFBRSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQ3BELFNBQVMsUUFDVCxlQUFlLEVBQUUsZUFBZSxHQUNoQyxDQUNFLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRBcnRpY2xlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3JlY29tbWVuZGVkLWFydGljbGVzL1JlY29tbWVuZGVkQXJ0aWNsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixPQUFPLGVBQWUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVqRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUkzQixDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO0lBQy9DLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFFBQVEsRUFBTyxDQUFDO0lBRWpELElBQUksT0FBTyxJQUFJLEtBQUssSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1FBQzFDLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxrQkFBa0IsRUFBRSxDQUFDO0lBRXBELE1BQU0sS0FBSyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUU1RCxNQUFNLGNBQWMsR0FBRyxDQUFDLEVBQWMsRUFBRSxPQUF3QixFQUFFLEVBQUU7UUFDbEUsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQzVCLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDL0QsQ0FBQztRQUVGLElBQUksa0JBQWtCLEVBQUU7WUFDdEIsa0JBQWtCLENBQUM7Z0JBQ2pCLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixNQUFNLEVBQUUscUJBQXFCO2dCQUM3QixLQUFLLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7YUFDcEUsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPLENBQ0wsNkJBQ0UsRUFBRSxFQUFDLHNCQUFzQixFQUN6QixLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtRQUVoRCxvQkFBQyxlQUFlLElBQ2QsT0FBTyxFQUFFLE9BQU8sRUFDaEIsS0FBSyxFQUFFLEtBQUssRUFDWixTQUFTLFFBQ1QsT0FBTyxFQUFFLGNBQWMsRUFDdkIsZUFBZSxFQUFFLGVBQWUsR0FDaEMsQ0FDRSxDQUNQLENBQUM7QUFDSixDQUFDLENBQUMifQ==
@@ -1,5 +1 @@
1
- export declare const getArticles: (data: any, numOfArticles: number) => {
2
- recommendations: {
3
- articles: any;
4
- };
5
- };
1
+ export {};
@@ -1,33 +1,29 @@
1
1
  import React from 'react';
2
2
  import { showcaseConverter } from '@times-components/storybook';
3
+ import { getArticles } from './helpers';
3
4
  import { FetchProvider } from '../../helpers/fetch/FetchProvider';
4
5
  import previewData from '../../fixtures/preview-data/recommended-articles';
5
6
  import analyticsStream from '../../fixtures/analytics-actions/analytics-actions';
6
7
  import { RecommendedArticles } from './RecommendedArticles';
7
- export const getArticles = (data, numOfArticles) => ({
8
- recommendations: {
9
- articles: data.recommendations.articles.slice(0, numOfArticles)
10
- }
11
- });
12
8
  const recommArticles = {
13
9
  children: [
14
10
  {
15
11
  component: () => (React.createElement(FetchProvider, { previewData: getArticles(previewData, 1) },
16
- React.createElement(RecommendedArticles, { section: "News", isVisible: true, analyticsStream: analyticsStream }))),
12
+ React.createElement(RecommendedArticles, { heading: "Today's news", isVisible: true, analyticsStream: analyticsStream }))),
17
13
  name: 'Recommended Articles - 1 Article',
18
14
  platform: 'web',
19
15
  type: 'story'
20
16
  },
21
17
  {
22
18
  component: () => (React.createElement(FetchProvider, { previewData: getArticles(previewData, 2) },
23
- React.createElement(RecommendedArticles, { section: "Business", isVisible: true, analyticsStream: analyticsStream }))),
19
+ React.createElement(RecommendedArticles, { heading: "Today's business", isVisible: true, analyticsStream: analyticsStream }))),
24
20
  name: 'Recommended Articles - 2 Article',
25
21
  platform: 'web',
26
22
  type: 'story'
27
23
  },
28
24
  {
29
25
  component: () => (React.createElement(FetchProvider, { previewData: previewData },
30
- React.createElement(RecommendedArticles, { section: "Sport", isVisible: true, analyticsStream: analyticsStream }))),
26
+ React.createElement(RecommendedArticles, { heading: "Today's sport", isVisible: true, analyticsStream: analyticsStream }))),
31
27
  name: 'Recommended Articles - 3 Article',
32
28
  platform: 'web',
33
29
  type: 'story'
@@ -36,4 +32,4 @@ const recommArticles = {
36
32
  name: 'Typescript Component/Recommended Articles'
37
33
  };
38
34
  showcaseConverter(module, recommArticles);
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRBcnRpY2xlcy5zdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVjb21tZW5kZWQtYXJ0aWNsZXMvUmVjb21tZW5kZWRBcnRpY2xlcy5zdG9yaWVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sV0FBVyxNQUFNLGtEQUFrRCxDQUFDO0FBQzNFLE9BQU8sZUFBZSxNQUFNLG9EQUFvRCxDQUFDO0FBRWpGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQVMsRUFBRSxhQUFxQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQztLQUNoRTtDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sY0FBYyxHQUFHO0lBQ3JCLFFBQVEsRUFBRTtRQUNSO1lBQ0UsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQ2Ysb0JBQUMsYUFBYSxJQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDckQsb0JBQUMsbUJBQW1CLElBQ2xCLE9BQU8sRUFBQyxNQUFNLEVBQ2QsU0FBUyxRQUNULGVBQWUsRUFBRSxlQUFlLEdBQ2hDLENBQ1ksQ0FDakI7WUFDRCxJQUFJLEVBQUUsa0NBQWtDO1lBQ3hDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUFFLE9BQU87U0FDZDtRQUNEO1lBQ0UsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQ2Ysb0JBQUMsYUFBYSxJQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDckQsb0JBQUMsbUJBQW1CLElBQ2xCLE9BQU8sRUFBQyxVQUFVLEVBQ2xCLFNBQVMsUUFDVCxlQUFlLEVBQUUsZUFBZSxHQUNoQyxDQUNZLENBQ2pCO1lBQ0QsSUFBSSxFQUFFLGtDQUFrQztZQUN4QyxRQUFRLEVBQUUsS0FBSztZQUNmLElBQUksRUFBRSxPQUFPO1NBQ2Q7UUFDRDtZQUNFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUNmLG9CQUFDLGFBQWEsSUFBQyxXQUFXLEVBQUUsV0FBVztnQkFDckMsb0JBQUMsbUJBQW1CLElBQ2xCLE9BQU8sRUFBQyxPQUFPLEVBQ2YsU0FBUyxRQUNULGVBQWUsRUFBRSxlQUFlLEdBQ2hDLENBQ1ksQ0FDakI7WUFDRCxJQUFJLEVBQUUsa0NBQWtDO1lBQ3hDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUFFLE9BQU87U0FDZDtLQUNGO0lBQ0QsSUFBSSxFQUFFLDJDQUEyQztDQUNsRCxDQUFDO0FBRUYsaUJBQWlCLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDIn0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRBcnRpY2xlcy5zdG9yaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVjb21tZW5kZWQtYXJ0aWNsZXMvUmVjb21tZW5kZWRBcnRpY2xlcy5zdG9yaWVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxXQUFXLE1BQU0sa0RBQWtELENBQUM7QUFDM0UsT0FBTyxlQUFlLE1BQU0sb0RBQW9ELENBQUM7QUFFakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsTUFBTSxjQUFjLEdBQUc7SUFDckIsUUFBUSxFQUFFO1FBQ1I7WUFDRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FDZixvQkFBQyxhQUFhLElBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRCxvQkFBQyxtQkFBbUIsSUFDbEIsT0FBTyxFQUFDLGNBQWMsRUFDdEIsU0FBUyxRQUNULGVBQWUsRUFBRSxlQUFlLEdBQ2hDLENBQ1ksQ0FDakI7WUFDRCxJQUFJLEVBQUUsa0NBQWtDO1lBQ3hDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUFFLE9BQU87U0FDZDtRQUNEO1lBQ0UsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQ2Ysb0JBQUMsYUFBYSxJQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDckQsb0JBQUMsbUJBQW1CLElBQ2xCLE9BQU8sRUFBQyxrQkFBa0IsRUFDMUIsU0FBUyxRQUNULGVBQWUsRUFBRSxlQUFlLEdBQ2hDLENBQ1ksQ0FDakI7WUFDRCxJQUFJLEVBQUUsa0NBQWtDO1lBQ3hDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUFFLE9BQU87U0FDZDtRQUNEO1lBQ0UsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQ2Ysb0JBQUMsYUFBYSxJQUFDLFdBQVcsRUFBRSxXQUFXO2dCQUNyQyxvQkFBQyxtQkFBbUIsSUFDbEIsT0FBTyxFQUFDLGVBQWUsRUFDdkIsU0FBUyxRQUNULGVBQWUsRUFBRSxlQUFlLEdBQ2hDLENBQ1ksQ0FDakI7WUFDRCxJQUFJLEVBQUUsa0NBQWtDO1lBQ3hDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSSxFQUFFLE9BQU87U0FDZDtLQUNGO0lBQ0QsSUFBSSxFQUFFLDJDQUEyQztDQUNsRCxDQUFDO0FBRUYsaUJBQWlCLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDIn0=
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
2
  export declare const RecommendedFetch: React.FC<{
3
3
  articleId: string;
4
- section: string;
4
+ articleHeadline: string;
5
+ articleSection: string;
5
6
  isVisible?: boolean;
6
7
  analyticsStream?: (evt: any) => void;
7
8
  }>;
@@ -1,12 +1,27 @@
1
1
  import React, { useEffect, useState } from 'react';
2
2
  import { FetchProvider } from '../../helpers/fetch/FetchProvider';
3
+ import { TrackingContextProvider } from '../../helpers/tracking/TrackingContextProvider';
3
4
  import { RecommendedArticles } from './RecommendedArticles';
4
- export const RecommendedFetch = ({ articleId, section, isVisible, analyticsStream }) => {
5
+ export const RecommendedFetch = ({ articleId, articleHeadline, articleSection, isVisible, analyticsStream }) => {
5
6
  const [isClientSide, setIsClientSide] = useState(false);
6
7
  useEffect(() => {
7
8
  setIsClientSide(true);
8
9
  }, []);
10
+ const heading = `Today's ${articleSection}`;
9
11
  return isClientSide ? (React.createElement(FetchProvider, { url: `/api/recommended-articles/${articleId}` },
10
- React.createElement(RecommendedArticles, { section: section, isVisible: isVisible, analyticsStream: analyticsStream }))) : null;
12
+ React.createElement(TrackingContextProvider, { context: {
13
+ object: 'RecommendedArticles',
14
+ attrs: {
15
+ event_navigation_action: 'navigation',
16
+ event_navigation_name: 'widget : relevant article',
17
+ event_navigation_browsing_method: 'click',
18
+ section_details: `section : ${articleSection}`,
19
+ article_name: articleHeadline,
20
+ widget_headline: heading.toLowerCase(),
21
+ widget_section: articleSection,
22
+ widget_type: "today's section"
23
+ }
24
+ } },
25
+ React.createElement(RecommendedArticles, { heading: heading, isVisible: isVisible, analyticsStream: analyticsStream })))) : null;
11
26
  };
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRGZXRjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3JlY29tbWVuZGVkLWFydGljbGVzL1JlY29tbWVuZGVkRmV0Y2gudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBS3hCLENBQUMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO0lBQzFELE1BQU0sQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLEdBQUcsUUFBUSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRWpFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQ3BCLG9CQUFDLGFBQWEsSUFBQyxHQUFHLEVBQUUsNkJBQTZCLFNBQVMsRUFBRTtRQUMxRCxvQkFBQyxtQkFBbUIsSUFDbEIsT0FBTyxFQUFFLE9BQU8sRUFDaEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsZUFBZSxFQUFFLGVBQWUsR0FDaEMsQ0FDWSxDQUNqQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDWCxDQUFDLENBQUMifQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRGZXRjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3JlY29tbWVuZGVkLWFydGljbGVzL1JlY29tbWVuZGVkRmV0Y2gudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBTXhCLENBQUMsRUFDSixTQUFTLEVBQ1QsZUFBZSxFQUNmLGNBQWMsRUFDZCxTQUFTLEVBQ1QsZUFBZSxFQUNoQixFQUFFLEVBQUU7SUFDSCxNQUFNLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxHQUFHLFFBQVEsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUVqRSxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVQLE1BQU0sT0FBTyxHQUFHLFdBQVcsY0FBYyxFQUFFLENBQUM7SUFFNUMsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQ3BCLG9CQUFDLGFBQWEsSUFBQyxHQUFHLEVBQUUsNkJBQTZCLFNBQVMsRUFBRTtRQUMxRCxvQkFBQyx1QkFBdUIsSUFDdEIsT0FBTyxFQUFFO2dCQUNQLE1BQU0sRUFBRSxxQkFBcUI7Z0JBQzdCLEtBQUssRUFBRTtvQkFDTCx1QkFBdUIsRUFBRSxZQUFZO29CQUNyQyxxQkFBcUIsRUFBRSwyQkFBMkI7b0JBQ2xELGdDQUFnQyxFQUFFLE9BQU87b0JBQ3pDLGVBQWUsRUFBRSxhQUFhLGNBQWMsRUFBRTtvQkFDOUMsWUFBWSxFQUFFLGVBQWU7b0JBQzdCLGVBQWUsRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFO29CQUN0QyxjQUFjLEVBQUUsY0FBYztvQkFDOUIsV0FBVyxFQUFFLGlCQUFpQjtpQkFDL0I7YUFDRjtZQUVELG9CQUFDLG1CQUFtQixJQUNsQixPQUFPLEVBQUUsT0FBTyxFQUNoQixTQUFTLEVBQUUsU0FBUyxFQUNwQixlQUFlLEVBQUUsZUFBZSxHQUNoQyxDQUNzQixDQUNaLENBQ2pCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNYLENBQUMsQ0FBQyJ9
@@ -1,29 +1,100 @@
1
1
  import React from 'react';
2
- import { render } from '@testing-library/react';
2
+ import mockDate from 'mockdate';
3
+ import { render, cleanup, fireEvent } from '@testing-library/react';
4
+ import { getArticles } from '../helpers';
3
5
  import { useFetch } from '../../../helpers/fetch/FetchProvider';
6
+ import { TrackingContextProvider } from '../../../helpers/tracking/TrackingContextProvider';
4
7
  import previewData from '../../../fixtures/preview-data/recommended-articles';
5
8
  import { RecommendedArticles } from '../RecommendedArticles';
6
- jest.mock('@times-components/related-articles', () => 'RelatedArticles');
7
9
  jest.mock('../../../helpers/fetch/FetchProvider', () => ({
8
10
  useFetch: jest.fn()
9
11
  }));
12
+ jest.mock('@times-components/related-articles', () => ({
13
+ __esModule: true,
14
+ default: (props) => (React.createElement("div", null,
15
+ "RelatedArticles",
16
+ React.createElement("div", null, props.heading),
17
+ props.slice.items.map(({ article }) => (React.createElement("div", { onClick: () => props.onPress(null, { url: article.shortIdentifier }) }, article.headline)))))
18
+ }));
19
+ const articles = previewData.recommendations.articles;
20
+ const section = 'news';
21
+ const heading = `Today's ${section}`;
22
+ const initialContext = {
23
+ object: 'RecommendedArticles',
24
+ attrs: {
25
+ event_navigation_action: 'navigation',
26
+ event_navigation_name: 'widget : relevant article',
27
+ event_navigation_browsing_method: 'click',
28
+ section_details: `section : ${section}`,
29
+ article_name: 'Headline',
30
+ widget_headline: heading.toLowerCase(),
31
+ widget_section: section,
32
+ widget_type: "today's section"
33
+ }
34
+ };
10
35
  describe('<RecommendedArticles>', () => {
36
+ beforeEach(() => {
37
+ mockDate.set(1620000000000);
38
+ });
39
+ afterEach(() => {
40
+ mockDate.reset();
41
+ jest.clearAllMocks();
42
+ cleanup();
43
+ });
11
44
  it('should render the initial loading state correctly', () => {
12
45
  useFetch.mockReturnValue({ loading: true });
13
- const { asFragment } = render(React.createElement(RecommendedArticles, { section: "News", analyticsStream: () => ({}) }));
46
+ const { asFragment } = render(React.createElement(RecommendedArticles, { heading: heading, analyticsStream: () => ({}) }));
14
47
  expect(asFragment().firstChild).toBeNull();
15
48
  });
16
49
  it('should render the error state correctly', () => {
17
50
  useFetch.mockReturnValue({ error: 'Some error occurred' });
18
- const { asFragment } = render(React.createElement(RecommendedArticles, { section: "News", analyticsStream: () => ({}) }));
51
+ const { asFragment } = render(React.createElement(RecommendedArticles, { heading: heading, analyticsStream: () => ({}) }));
19
52
  expect(asFragment().firstChild).toBeNull();
20
53
  });
21
- it('should render RelatedArticles correctly', () => {
54
+ it('should render RelatedArticles correctly with 1 article', () => {
55
+ useFetch.mockReturnValue({
56
+ data: getArticles(previewData, 1)
57
+ });
58
+ const { asFragment, getByText } = render(React.createElement(RecommendedArticles, { heading: heading, isVisible: true, analyticsStream: () => ({}) }));
59
+ expect(getByText(heading));
60
+ expect(getByText(articles[0].headline));
61
+ expect(asFragment()).toMatchSnapshot();
62
+ });
63
+ it('should render RelatedArticles correctly with 2 articles', () => {
64
+ useFetch.mockReturnValue({
65
+ data: getArticles(previewData, 2)
66
+ });
67
+ const { asFragment, getByText } = render(React.createElement(RecommendedArticles, { heading: heading, analyticsStream: () => ({}) }));
68
+ expect(getByText(heading));
69
+ expect(getByText(articles[0].headline));
70
+ expect(getByText(articles[1].headline));
71
+ expect(asFragment()).toMatchSnapshot();
72
+ });
73
+ it('should render RelatedArticles correctly with 3 articles', () => {
22
74
  useFetch.mockReturnValue({ data: previewData });
23
- const { container, asFragment } = render(React.createElement(RecommendedArticles, { section: "News", isVisible: true, analyticsStream: () => ({}) }));
24
- const related = container.querySelector('relatedarticles');
25
- expect(related.getAttribute('heading')).toEqual("Today's News");
75
+ const { asFragment, getByText } = render(React.createElement(RecommendedArticles, { heading: heading, isVisible: true, analyticsStream: () => ({}) }));
76
+ expect(getByText(heading));
77
+ expect(getByText(articles[0].headline));
78
+ expect(getByText(articles[1].headline));
79
+ expect(getByText(articles[2].headline));
26
80
  expect(asFragment()).toMatchSnapshot();
27
81
  });
82
+ it('should fire analytics event when an article is clicked', () => {
83
+ const analyticsStream = jest.fn();
84
+ useFetch.mockReturnValue({ data: previewData });
85
+ const { getByText } = render(React.createElement(TrackingContextProvider, { context: initialContext, analyticsStream: analyticsStream },
86
+ React.createElement(RecommendedArticles, { heading: heading, isVisible: true, analyticsStream: () => ({}) })));
87
+ fireEvent.click(getByText(articles[0].headline));
88
+ expect(analyticsStream).toHaveBeenCalledTimes(1);
89
+ expect(analyticsStream).toHaveBeenCalledWith({
90
+ action: 'Clicked',
91
+ object: 'RecommendedArticles',
92
+ attrs: {
93
+ ...initialContext.attrs,
94
+ eventTime: '2021-05-03T00:00:00.000Z',
95
+ article_parent_name: articles[0].headline
96
+ }
97
+ });
98
+ });
28
99
  });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRBcnRpY2xlcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVjb21tZW5kZWQtYXJ0aWNsZXMvX190ZXN0c19fL1JlY29tbWVuZGVkQXJ0aWNsZXMudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEUsT0FBTyxXQUFXLE1BQU0scURBQXFELENBQUM7QUFFOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRXpFLElBQUksQ0FBQyxJQUFJLENBQUMsc0NBQXNDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN2RCxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtDQUNwQixDQUFDLENBQUMsQ0FBQztBQUVKLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7SUFDckMsRUFBRSxDQUFDLG1EQUFtRCxFQUFFLEdBQUcsRUFBRTtRQUMxRCxRQUFzQixDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTNELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQzNCLG9CQUFDLG1CQUFtQixJQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUksQ0FDcEUsQ0FBQztRQUVGLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7UUFDaEQsUUFBc0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBRTFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQzNCLG9CQUFDLG1CQUFtQixJQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUksQ0FDcEUsQ0FBQztRQUVGLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7UUFDaEQsUUFBc0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUUvRCxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FDdEMsb0JBQUMsbUJBQW1CLElBQ2xCLE9BQU8sRUFBQyxNQUFNLEVBQ2QsU0FBUyxRQUNULGVBQWUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUMzQixDQUNILENBQUM7UUFFRixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFnQixDQUFDO1FBQzFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRBcnRpY2xlcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVjb21tZW5kZWQtYXJ0aWNsZXMvX190ZXN0c19fL1JlY29tbWVuZGVkQXJ0aWNsZXMudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sUUFBUSxNQUFNLFVBQVUsQ0FBQztBQUNoQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM1RixPQUFPLFdBQVcsTUFBTSxxREFBcUQsQ0FBQztBQUU5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RCxJQUFJLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdkQsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7Q0FDcEIsQ0FBQyxDQUFDLENBQUM7QUFFSixJQUFJLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckQsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUN2Qjs7UUFFRSxpQ0FBTSxLQUFLLENBQUMsT0FBTyxDQUFPO1FBQ3pCLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFPLEVBQUUsRUFBRSxDQUFDLENBQzNDLDZCQUNFLE9BQU8sRUFBRSxHQUFH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
@@ -11,10 +11,10 @@ jest.mock('../../../helpers/fetch/FetchProvider', () => ({
11
11
  }));
12
12
  describe('<RecommendedFetch>', () => {
13
13
  it('should render correctly', () => {
14
- const { asFragment, getByText } = render(React.createElement(RecommendedFetch, { articleId: "1234", section: "News", analyticsStream: () => ({}) }));
14
+ const { asFragment, getByText } = render(React.createElement(RecommendedFetch, { articleId: "1234", articleHeadline: "Some headline", articleSection: "News", analyticsStream: () => ({}) }));
15
15
  expect(getByText('FetchProvider'));
16
16
  expect(getByText('RecommendedArticles'));
17
17
  expect(asFragment()).toMatchSnapshot();
18
18
  });
19
19
  });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRGZXRjaC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVjb21tZW5kZWQtYXJ0aWNsZXMvX190ZXN0c19fL1JlY29tbWVuZGVkRmV0Y2gudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDekMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLENBQUMsdURBQThCO0NBQzFELENBQUMsQ0FBQyxDQUFDO0FBRUosSUFBSSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELGFBQWEsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsQ0FDN0I7O1FBRUcsS0FBSyxDQUFDLFFBQVEsQ0FDWCxDQUNQO0NBQ0YsQ0FBQyxDQUFDLENBQUM7QUFFSixRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO0lBQ2xDLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUU7UUFDakMsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQ3RDLG9CQUFDLGdCQUFnQixJQUNmLFNBQVMsRUFBQyxNQUFNLEVBQ2hCLE9BQU8sRUFBQyxNQUFNLEVBQ2QsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQzNCLENBQ0gsQ0FBQztRQUVGLE1BQU0sQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNuQyxNQUFNLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztRQUN6QyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb21tZW5kZWRGZXRjaC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcmVjb21tZW5kZWQtYXJ0aWNsZXMvX190ZXN0c19fL1JlY29tbWVuZGVkRmV0Y2gudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDekMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLENBQUMsdURBQThCO0NBQzFELENBQUMsQ0FBQyxDQUFDO0FBRUosSUFBSSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELGFBQWEsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsQ0FDN0I7O1FBRUcsS0FBSyxDQUFDLFFBQVEsQ0FDWCxDQUNQO0NBQ0YsQ0FBQyxDQUFDLENBQUM7QUFFSixRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO0lBQ2xDLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUU7UUFDakMsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQ3RDLG9CQUFDLGdCQUFnQixJQUNmLFNBQVMsRUFBQyxNQUFNLEVBQ2hCLGVBQWUsRUFBQyxlQUFlLEVBQy9CLGNBQWMsRUFBQyxNQUFNLEVBQ3JCLGVBQWUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUMzQixDQUNILENBQUM7UUFFRixNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDbkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9
@@ -0,0 +1,5 @@
1
+ export declare const getArticles: (data: any, numOfArticles: number) => {
2
+ recommendations: {
3
+ articles: any;
4
+ };
5
+ };
@@ -0,0 +1,6 @@
1
+ export const getArticles = (data, numOfArticles) => ({
2
+ recommendations: {
3
+ articles: data.recommendations.articles.slice(0, numOfArticles)
4
+ }
5
+ });
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3JlY29tbWVuZGVkLWFydGljbGVzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBUyxFQUFFLGFBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEUsZUFBZSxFQUFFO1FBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDO0tBQ2hFO0NBQ0YsQ0FBQyxDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@times-components/ts-components",
3
- "version": "1.42.0",
3
+ "version": "1.43.0",
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.10.5",
58
58
  "@times-components/provider": "1.32.0",
59
59
  "@times-components/provider-queries": "2.17.0",
60
- "@times-components/related-articles": "6.8.25",
60
+ "@times-components/related-articles": "6.8.26",
61
61
  "@times-components/ts-slices": "1.3.24",
62
62
  "@times-components/ts-styleguide": "1.36.2",
63
63
  "@times-components/utils": "6.12.1",
@@ -119,5 +119,5 @@
119
119
  "@testing-library/jest-dom/extend-expect"
120
120
  ]
121
121
  },
122
- "gitHead": "cd8ec375bb2217262d3ab6940d771ad639929622"
122
+ "gitHead": "98f211815592e40ad990676564a3136b48b79bf7"
123
123
  }