@times-components/ts-components 1.54.10 → 1.55.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 +11 -0
- package/dist/components/in-article-link/InArticleLink.js +2 -2
- package/dist/components/save-star/SaveStar.d.ts +5 -0
- package/dist/components/save-star/SaveStar.js +20 -0
- package/dist/components/save-star/SaveStar.stories.d.ts +1 -0
- package/dist/components/save-star/SaveStar.stories.js +22 -0
- package/dist/components/save-star/SaveStarUI.d.ts +8 -0
- package/dist/components/save-star/SaveStarUI.js +32 -0
- package/dist/components/save-star/__tests__/SaveStar.test.d.ts +1 -0
- package/dist/components/save-star/__tests__/SaveStar.test.js +48 -0
- package/dist/components/save-star/styles.d.ts +5 -0
- package/dist/components/save-star/styles.js +41 -0
- package/dist/helpers/fetch/FetchProvider.js +10 -5
- package/dist/helpers/fetch/__tests__/FetchProvider.test.js +4 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/package.json +3 -3
- package/rnw.js +1 -1
- package/src/components/in-article-link/InArticleLink.tsx +1 -1
- package/src/components/in-article-related-articles/__tests__/__snapshots__/RelatedArticle.test.tsx.snap +3 -1
- package/src/components/save-star/SaveStar.stories.tsx +31 -0
- package/src/components/save-star/SaveStar.tsx +39 -0
- package/src/components/save-star/SaveStarUI.tsx +76 -0
- package/src/components/save-star/__tests__/SaveStar.test.tsx +72 -0
- package/src/components/save-star/__tests__/__snapshots__/SaveStar.test.tsx.snap +94 -0
- package/src/components/save-star/styles.ts +45 -0
- package/src/helpers/fetch/FetchProvider.tsx +27 -19
- package/src/helpers/fetch/__tests__/FetchProvider.test.tsx +3 -3
- package/src/index.ts +1 -0
- package/src/types/externs.d.ts +5 -1
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.55.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.54.10...@times-components/ts-components@1.55.0) (2022-11-03)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **TDP-000:** Bookmarks migrated to Newskit ([#3174](https://github.com/newsuk/times-components/issues/3174)) ([8d4f7ad](https://github.com/newsuk/times-components/commit/8d4f7ad7fd41d4e54c69ff626edefdd1c4413f36))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [1.54.10](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.54.9...@times-components/ts-components@1.54.10) (2022-11-02)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @times-components/ts-components
|
|
@@ -3,5 +3,5 @@ import { IconForwardChevron } from '@times-components/icons';
|
|
|
3
3
|
import { Link, LinkText } from './styles';
|
|
4
4
|
export const InArticleLink = ({ link, linkText, onClick }) => (React.createElement(Link, { href: link, onClick: () => onClick && onClick(linkText) },
|
|
5
5
|
React.createElement(LinkText, null, linkText),
|
|
6
|
-
React.createElement(IconForwardChevron, { height: 18, width: 8
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
React.createElement(IconForwardChevron, { height: 18, width: 8 })));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5BcnRpY2xlTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2luLWFydGljbGUtbGluay9JbkFydGljbGVMaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0QsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUlyQixDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FDcEMsb0JBQUMsSUFBSSxJQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQzNELG9CQUFDLFFBQVEsUUFBRSxRQUFRLENBQVk7SUFDL0Isb0JBQUMsa0JBQWtCLElBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFJLENBQ3ZDLENBQ1IsQ0FBQyJ9
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { FetchProvider } from '../../helpers/fetch/FetchProvider';
|
|
3
|
+
import { SaveStarUI } from './SaveStarUI';
|
|
4
|
+
export const SaveStar = ({ articleId, isPreviewMode }) => {
|
|
5
|
+
const [url, setUrl] = useState(`/api/collections/is-bookmarked/${articleId}`);
|
|
6
|
+
const [previewData, setPreviewData] = useState(isPreviewMode ? { isBookmarked: false } : undefined);
|
|
7
|
+
const onToggleSave = (id, isSaved) => {
|
|
8
|
+
if (isPreviewMode) {
|
|
9
|
+
setPreviewData({ isBookmarked: !isSaved });
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
setUrl(isSaved
|
|
13
|
+
? `/api/collections/delete/${id}`
|
|
14
|
+
: `/api/collections/save/${id}`);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
return (React.createElement(FetchProvider, { url: url, options: { credentials: 'same-origin' }, previewData: previewData },
|
|
18
|
+
React.createElement(SaveStarUI, { articleId: articleId, onToggleSave: onToggleSave })));
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2F2ZVN0YXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zYXZlLXN0YXIvU2F2ZVN0YXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRXhDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUUzRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBR2hCLENBQUMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRTtJQUNwQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FDNUIsa0NBQWtDLFNBQVMsRUFBRSxDQUM5QyxDQUFDO0lBRUYsTUFBTSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsR0FBRyxRQUFRLENBQzVDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDcEQsQ0FBQztJQUVGLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBVSxFQUFFLE9BQWdCLEVBQUUsRUFBRTtRQUNwRCxJQUFJLGFBQWEsRUFBRTtZQUNqQixjQUFjLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQzVDO2FBQU07WUFDTCxNQUFNLENBQ0osT0FBTztnQkFDTCxDQUFDLENBQUMsMkJBQTJCLEVBQUUsRUFBRTtnQkFDakMsQ0FBQyxDQUFDLHlCQUF5QixFQUFFLEVBQUUsQ0FDbEMsQ0FBQztTQUNIO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsT0FBTyxDQUNMLG9CQUFDLGFBQWEsSUFDWixHQUFHLEVBQUUsR0FBRyxFQUNSLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsRUFDdkMsV0FBVyxFQUFFLFdBQVc7UUFFeEIsb0JBQUMsVUFBVSxJQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksR0FBSSxDQUNsRCxDQUNqQixDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import styled from 'styled-components';
|
|
3
|
+
import { storiesOf } from '@storybook/react';
|
|
4
|
+
import { SaveStar } from './SaveStar';
|
|
5
|
+
import { TrackingContextProvider } from '../../helpers/tracking/TrackingContextProvider';
|
|
6
|
+
import analyticsStream from '../../fixtures/analytics-actions/analytics-actions';
|
|
7
|
+
const Wrapper = styled.div `
|
|
8
|
+
display: flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
padding: 20px;
|
|
11
|
+
`;
|
|
12
|
+
storiesOf('Typescript Component/SaveStar', module)
|
|
13
|
+
.addDecorator((storyFn) => (React.createElement(TrackingContextProvider, { context: {
|
|
14
|
+
component: 'ArticleSkeleton',
|
|
15
|
+
attrs: {
|
|
16
|
+
article_name: 'articleHeadline',
|
|
17
|
+
section_details: 'section'
|
|
18
|
+
}
|
|
19
|
+
}, analyticsStream: analyticsStream },
|
|
20
|
+
React.createElement(Wrapper, null, storyFn()))))
|
|
21
|
+
.add('SaveStar', () => React.createElement(SaveStar, { articleId: "12345", isPreviewMode: true }));
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2F2ZVN0YXIuc3Rvcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NhdmUtc3Rhci9TYXZlU3Rhci5zdG9yaWVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxNQUFNLE1BQU0sbUJBQW1CLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFekYsT0FBTyxlQUFlLE1BQU0sb0RBQW9ELENBQUM7QUFFakYsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQTs7OztDQUl6QixDQUFDO0FBRUYsU0FBUyxDQUFDLCtCQUErQixFQUFFLE1BQU0sQ0FBQztLQUMvQyxZQUFZLENBQUMsQ0FBQyxPQUE4QixFQUFFLEVBQUUsQ0FBQyxDQUNoRCxvQkFBQyx1QkFBdUIsSUFDdEIsT0FBTyxFQUFFO1FBQ1AsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixLQUFLLEVBQUU7WUFDTCxZQUFZLEVBQUUsaUJBQWlCO1lBQy9CLGVBQWUsRUFBRSxTQUFTO1NBQzNCO0tBQ0YsRUFDRCxlQUFlLEVBQUUsZUFBZTtJQUVoQyxvQkFBQyxPQUFPLFFBQUUsT0FBTyxFQUFFLENBQVcsQ0FDTixDQUMzQixDQUFDO0tBQ0QsR0FBRyxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxvQkFBQyxRQUFRLElBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxhQUFhLFNBQUcsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React, { useCallback, useEffect, useState } from 'react';
|
|
2
|
+
import { colours } from '@times-components/ts-styleguide';
|
|
3
|
+
import { IconStar } from '@times-components/icons';
|
|
4
|
+
import { useFetch } from '../../helpers/fetch/FetchProvider';
|
|
5
|
+
import { IconContainer, LoadingIcon, SaveStarText, SaveStarButton } from './styles';
|
|
6
|
+
const getText = (isSaved) => (isSaved ? 'Saved' : 'Save');
|
|
7
|
+
const getIconTitle = (isSaved) => isSaved ? 'Remove from My Articles' : 'Save to My Articles';
|
|
8
|
+
const getIconFillColour = (isSaved) => isSaved ? colours.functional.action : colours.functional.white;
|
|
9
|
+
export const SaveStarUI = ({ articleId, onToggleSave }) => {
|
|
10
|
+
const [isLoading, setIsSavedLoading] = useState(true);
|
|
11
|
+
const [isSaved, setIsSaved] = useState(false);
|
|
12
|
+
const { loading, data } = useFetch();
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
setIsSavedLoading(loading);
|
|
15
|
+
setIsSaved(data ? data.isBookmarked : false);
|
|
16
|
+
}, [loading, data]);
|
|
17
|
+
const toggleSave = useCallback(async () => {
|
|
18
|
+
onToggleSave(articleId, isSaved);
|
|
19
|
+
}, [articleId, isSaved]);
|
|
20
|
+
if (isLoading) {
|
|
21
|
+
return (React.createElement(React.Fragment, null,
|
|
22
|
+
React.createElement(SaveStarText, null, getText(false)),
|
|
23
|
+
React.createElement(IconContainer, null,
|
|
24
|
+
React.createElement(LoadingIcon, null))));
|
|
25
|
+
}
|
|
26
|
+
return (React.createElement(React.Fragment, null,
|
|
27
|
+
React.createElement(SaveStarText, null, getText(isSaved)),
|
|
28
|
+
React.createElement(SaveStarButton, { onClick: toggleSave },
|
|
29
|
+
React.createElement(IconContainer, null,
|
|
30
|
+
React.createElement(IconStar, { height: 18, title: getIconTitle(isSaved), fillColour: getIconFillColour(isSaved), strokeColour: colours.functional.secondary })))));
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2F2ZVN0YXJVSS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NhdmUtc3Rhci9TYXZlU3RhclVJLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTdELE9BQU8sRUFDTCxhQUFhLEVBQ2IsV0FBVyxFQUNYLFlBQVksRUFDWixjQUFjLEVBQ2YsTUFBTSxVQUFVLENBQUM7QUFNbEIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxPQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUVuRSxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUN4QyxPQUFPLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQztBQUU5RCxNQUFNLGlCQUFpQixHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQzdDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FHbEIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFO0lBQ25DLE1BQU0sQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxRQUFRLENBQVUsSUFBSSxDQUFDLENBQUM7SUFDL0QsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxRQUFRLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFdkQsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxRQUFRLEVBQW1CLENBQUM7SUFFdEQsU0FBUyxDQUNQLEdBQUcsRUFBRTtRQUNILGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUMsRUFDRCxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FDaEIsQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FDNUIsS0FBSyxJQUFJLEVBQUU7UUFDVCxZQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUMsRUFDRCxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FDckIsQ0FBQztJQUVGLElBQUksU0FBUyxFQUFFO1FBQ2IsT0FBTyxDQUNMO1lBQ0Usb0JBQUMsWUFBWSxRQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBZ0I7WUFDN0Msb0JBQUMsYUFBYTtnQkFDWixvQkFBQyxXQUFXLE9BQUcsQ0FDRCxDQUNmLENBQ0osQ0FBQztLQUNIO0lBRUQsT0FBTyxDQUNMO1FBQ0Usb0JBQUMsWUFBWSxRQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBZ0I7UUFDL0Msb0JBQUMsY0FBYyxJQUFDLE9BQU8sRUFBRSxVQUFVO1lBQ2pDLG9CQUFDLGFBQWE7Z0JBQ1osb0JBQUMsUUFBUSxJQUNQLE1BQU0sRUFBRSxFQUFFLEVBQ1YsS0FBSyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFDNUIsVUFBVSxFQUFFLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUN0QyxZQUFZLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQzFDLENBQ1ksQ0FDRCxDQUNoQixDQUNKLENBQUM7QUFDSixDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render, fireEvent } from '@testing-library/react';
|
|
3
|
+
import '@testing-library/jest-dom';
|
|
4
|
+
import { useFetch } from '../../../helpers/fetch/FetchProvider';
|
|
5
|
+
import { SaveStar } from '../SaveStar';
|
|
6
|
+
jest.mock('../../../helpers/fetch/FetchProvider', () => ({
|
|
7
|
+
...jest.requireActual('../../../helpers/fetch/FetchProvider'),
|
|
8
|
+
useFetch: jest.fn()
|
|
9
|
+
}));
|
|
10
|
+
const articleId = '12345';
|
|
11
|
+
const saved = { data: { isBookmarked: true } };
|
|
12
|
+
const unsaved = { data: { isBookmarked: false } };
|
|
13
|
+
describe('SaveStar', () => {
|
|
14
|
+
afterEach(() => {
|
|
15
|
+
jest.resetAllMocks();
|
|
16
|
+
});
|
|
17
|
+
it('should render the initial loading state correctly', () => {
|
|
18
|
+
useFetch.mockReturnValue({ loading: true });
|
|
19
|
+
const { asFragment, getByText } = render(React.createElement(SaveStar, { articleId: articleId }));
|
|
20
|
+
expect(getByText('Save'));
|
|
21
|
+
expect(asFragment()).toMatchSnapshot();
|
|
22
|
+
});
|
|
23
|
+
it('should render the unsaved state', async () => {
|
|
24
|
+
useFetch.mockReturnValue(unsaved);
|
|
25
|
+
const { asFragment, getByText } = render(React.createElement(SaveStar, { articleId: articleId }));
|
|
26
|
+
expect(getByText('Save'));
|
|
27
|
+
expect(asFragment()).toMatchSnapshot();
|
|
28
|
+
});
|
|
29
|
+
it('should render the saved state', () => {
|
|
30
|
+
useFetch.mockReturnValue(saved);
|
|
31
|
+
const { asFragment, getByText } = render(React.createElement(SaveStar, { articleId: articleId }));
|
|
32
|
+
expect(getByText('Saved'));
|
|
33
|
+
expect(asFragment()).toMatchSnapshot();
|
|
34
|
+
});
|
|
35
|
+
it('should move from unsaved to saved state', async () => {
|
|
36
|
+
useFetch
|
|
37
|
+
.mockReturnValueOnce(unsaved)
|
|
38
|
+
.mockReturnValueOnce(unsaved)
|
|
39
|
+
.mockReturnValueOnce(saved)
|
|
40
|
+
.mockReturnValueOnce(saved);
|
|
41
|
+
const { baseElement, getByText } = render(React.createElement(SaveStar, { articleId: "12345" }));
|
|
42
|
+
expect(getByText('Save'));
|
|
43
|
+
const button = baseElement.querySelector('button');
|
|
44
|
+
fireEvent.click(button);
|
|
45
|
+
await expect(getByText('Saved'));
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2F2ZVN0YXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NhdmUtc3Rhci9fX3Rlc3RzX18vU2F2ZVN0YXIudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTywyQkFBMkIsQ0FBQztBQUVuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2QyxJQUFJLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdkQsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLHNDQUFzQyxDQUFDO0lBQzdELFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO0NBQ3BCLENBQUMsQ0FBQyxDQUFDO0FBRUosTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDO0FBRTFCLE1BQU0sS0FBSyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7QUFDL0MsTUFBTSxPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztBQUVsRCxRQUFRLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtJQUN4QixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLG1EQUFtRCxFQUFFLEdBQUcsRUFBRTtRQUMxRCxRQUFzQixDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTNELE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUN0QyxvQkFBQyxRQUFRLElBQUMsU0FBUyxFQUFFLFNBQVMsR0FBSSxDQUNuQyxDQUFDO1FBRUYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGlDQUFpQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzlDLFFBQXNCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpELE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUN0QyxvQkFBQyxRQUFRLElBQUMsU0FBUyxFQUFFLFNBQVMsR0FBSSxDQUNuQyxDQUFDO1FBRUYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLCtCQUErQixFQUFFLEdBQUcsRUFBRTtRQUN0QyxRQUFzQixDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FDdEMsb0JBQUMsUUFBUSxJQUFDLFNBQVMsRUFBRSxTQUFTLEdBQUksQ0FDbkMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMzQixNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN0RCxRQUFzQjthQUNwQixtQkFBbUIsQ0FBQyxPQUFPLENBQUM7YUFDNUIsbUJBQW1CLENBQUMsT0FBTyxDQUFDO2FBQzVCLG1CQUFtQixDQUFDLEtBQUssQ0FBQzthQUMxQixtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QixNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxvQkFBQyxRQUFRLElBQUMsU0FBUyxFQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFFMUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRTFCLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFzQixDQUFDO1FBQ3hFLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFeEIsTUFBTSxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference path="../../../src/types/externs.d.ts" />
|
|
2
|
+
export declare const IconContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
3
|
+
export declare const LoadingIcon: import("styled-components").StyledComponent<import("react").FC<import("@times-components/icons").IconProps>, any, {}, never>;
|
|
4
|
+
export declare const SaveStarText: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
5
|
+
export declare const SaveStarButton: import("styled-components").StyledComponent<"button", any, {}, never>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
import { colours, fonts } from '@times-components/ts-styleguide';
|
|
3
|
+
import { IconActivityIndicator } from '@times-components/icons';
|
|
4
|
+
export const IconContainer = styled.div `
|
|
5
|
+
width: 40px;
|
|
6
|
+
height: 40px;
|
|
7
|
+
display: flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
justify-content: center;
|
|
10
|
+
`;
|
|
11
|
+
export const LoadingIcon = styled(IconActivityIndicator) `
|
|
12
|
+
background-color: ${colours.functional.whiteGrey};
|
|
13
|
+
border-radius: 9999;
|
|
14
|
+
overflow: hidden;
|
|
15
|
+
`;
|
|
16
|
+
export const SaveStarText = styled.div `
|
|
17
|
+
margin-right: 15px;
|
|
18
|
+
color: ${colours.functional.secondary};
|
|
19
|
+
font-family: ${fonts.supporting};
|
|
20
|
+
font-size: 14px;
|
|
21
|
+
line-height: 14px;
|
|
22
|
+
`;
|
|
23
|
+
export const SaveStarButton = styled.button `
|
|
24
|
+
display: flex;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
padding: 0;
|
|
27
|
+
background-color: ${colours.functional.white};
|
|
28
|
+
border: 0;
|
|
29
|
+
border-radius: 40px;
|
|
30
|
+
outline: 0;
|
|
31
|
+
cursor: pointer;
|
|
32
|
+
|
|
33
|
+
&:hover {
|
|
34
|
+
background-color: ${colours.functional.whiteGrey};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&:active {
|
|
38
|
+
background-color: ${colours.functional.keyline};
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc2F2ZS1zdGFyL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQztBQUV2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBOzs7Ozs7Q0FNdEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtzQkFDbEMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTOzs7Q0FHakQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBOztXQUUzQixPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVM7aUJBQ3RCLEtBQUssQ0FBQyxVQUFVOzs7Q0FHaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFBOzs7O3NCQUlyQixPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUs7Ozs7Ozs7d0JBT3RCLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUzs7Ozt3QkFJNUIsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPOztDQUVqRCxDQUFDIn0=
|
|
@@ -2,10 +2,11 @@ import fetch from 'isomorphic-unfetch';
|
|
|
2
2
|
import React, { createContext, useState, useEffect, useContext } from 'react';
|
|
3
3
|
const FetchProviderContext = createContext(undefined);
|
|
4
4
|
export const FetchProvider = ({ url, options, previewData, children }) => {
|
|
5
|
-
const [loading, setLoading] = useState(
|
|
5
|
+
const [loading, setLoading] = useState(true);
|
|
6
6
|
const [error, setError] = useState();
|
|
7
|
-
const [data, setData] = useState(
|
|
7
|
+
const [data, setData] = useState();
|
|
8
8
|
useEffect(() => {
|
|
9
|
+
setLoading(true);
|
|
9
10
|
const fetchData = async () => {
|
|
10
11
|
try {
|
|
11
12
|
if (url) {
|
|
@@ -23,10 +24,14 @@ export const FetchProvider = ({ url, options, previewData, children }) => {
|
|
|
23
24
|
setLoading(false);
|
|
24
25
|
}
|
|
25
26
|
};
|
|
26
|
-
if (
|
|
27
|
+
if (previewData) {
|
|
28
|
+
setData(previewData);
|
|
29
|
+
setLoading(false);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
27
32
|
fetchData();
|
|
28
33
|
}
|
|
29
|
-
}, []);
|
|
34
|
+
}, [url, options, previewData]);
|
|
30
35
|
return (React.createElement(FetchProviderContext.Provider, { value: { loading, error, data } }, children));
|
|
31
36
|
};
|
|
32
37
|
export const useFetch = () => {
|
|
@@ -36,4 +41,4 @@ export const useFetch = () => {
|
|
|
36
41
|
}
|
|
37
42
|
return context;
|
|
38
43
|
};
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmV0Y2hQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL2ZldGNoL0ZldGNoUHJvdmlkZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxFQUFFLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBZTlFLE1BQU0sb0JBQW9CLEdBQUcsYUFBYSxDQUN4QyxTQUFTLENBQ1YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBaUMsQ0FBQyxFQUMxRCxHQUFHLEVBQ0gsT0FBTyxFQUNQLFdBQVcsRUFDWCxRQUFRLEVBQ1QsRUFBRSxFQUFFO0lBQ0gsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxRQUFRLENBQVUsSUFBSSxDQUFDLENBQUM7SUFDdEQsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxRQUFRLEVBQXNCLENBQUM7SUFDekQsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxRQUFRLEVBQW1CLENBQUM7SUFFcEQsU0FBUyxDQUNQLEdBQUcsRUFBRTtRQUNILFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqQixNQUFNLFNBQVMsR0FBRyxLQUFLLElBQUksRUFBRTtZQUMzQixJQUFJO2dCQUNGLElBQUksR0FBRyxFQUFFO29CQUNQLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDM0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBRW5DLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDZCxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ25CO3FCQUFNO29CQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztpQkFDN0M7YUFDRjtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNaLFFBQVEsQ0FBQyxHQUFHLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDL0QsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsSUFBSSxXQUFXLEVBQUU7WUFDZixPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDckIsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25CO2FBQU07WUFDTCxTQUFTLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FDNUIsQ0FBQztJQUVGLE9BQU8sQ0FDTCxvQkFBQyxvQkFBb0IsQ0FBQyxRQUFRLElBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFDM0QsUUFBUSxDQUNxQixDQUNqQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEdBQW1DLEVBQUU7SUFDM0QsTUFBTSxPQUFPLEdBQW9CLFVBQVUsQ0FDekMsb0JBQW9CLENBQ0YsQ0FBQztJQUVyQixJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0tBQ3hEO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDIn0=
|
|
@@ -47,12 +47,12 @@ describe('<FetchProvider>', () => {
|
|
|
47
47
|
await findByText('Error');
|
|
48
48
|
expect(asFragment()).toMatchSnapshot();
|
|
49
49
|
});
|
|
50
|
-
it('preview', () => {
|
|
50
|
+
it('preview', async () => {
|
|
51
51
|
const value = 'Preloaded';
|
|
52
|
-
const { asFragment,
|
|
52
|
+
const { asFragment, findByText } = render(React.createElement(FetchProvider, { previewData: { value } },
|
|
53
53
|
React.createElement(TestComponent, null)));
|
|
54
|
-
|
|
54
|
+
await findByText(value);
|
|
55
55
|
expect(asFragment()).toMatchSnapshot();
|
|
56
56
|
});
|
|
57
57
|
});
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmV0Y2hQcm92aWRlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2hlbHBlcnMvZmV0Y2gvX190ZXN0c19fL0ZldGNoUHJvdmlkZXIudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFhLE1BQU0sT0FBTyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxPQUFPLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sVUFBVSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE1BQU0sU0FBUyxHQUFHLFVBQWlCLENBQUM7QUFFcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUzRCxNQUFNLGFBQWEsR0FBVyxHQUFHLEVBQUU7SUFDakMsSUFBSTtRQUNGLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFFBQVEsRUFBcUIsQ0FBQztRQUUvRCxJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sMkNBQWtCLENBQUM7U0FDM0I7UUFFRCxJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8seUNBQWdCLENBQUM7U0FDekI7UUFFRCxPQUFPLGlDQUFNLElBQUssQ0FBQyxLQUFLLENBQU8sQ0FBQztLQUNqQztJQUFDLE1BQU07UUFDTixPQUFPLHlDQUFnQixDQUFDO0tBQ3pCO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtJQUMvQixTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sUUFBUSxHQUFHLHNCQUFzQixDQUFDO0lBRXhDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDckIsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFM0QsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQ3ZDLG9CQUFDLGFBQWEsSUFBQyxHQUFHLEVBQUUsUUFBUTtZQUMxQixvQkFBQyxhQUFhLE9BQUcsQ0FDSCxDQUNqQixDQUFDO1FBRUYsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZDLE1BQU0sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtRQUNyQixTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRTFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUN2QyxvQkFBQyxhQUFhLElBQUMsR0FBRyxFQUFFLFFBQVE7WUFDMUIsb0JBQUMsYUFBYSxtQkFBeUIsQ0FDekIsQ0FDakIsQ0FBQztRQUVGLE1BQU0sVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksRUFBRTtRQUMxQixNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FDdkMsb0JBQUMsYUFBYSxtQkFBeUIsQ0FDeEMsQ0FBQztRQUVGLE1BQU0sVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN2QixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUM7UUFFMUIsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQ3ZDLG9CQUFDLGFBQWEsSUFBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUU7WUFDbkMsb0JBQUMsYUFBYSxPQUFHLENBQ0gsQ0FDakIsQ0FBQztRQUVGLE1BQU0sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export { BigNumbers } from './components/in-article-big-numbers/BigNumbers';
|
|
|
6
6
|
export { BreakingArticleFlag, LiveArticleFlag } from './components/article-flag/LiveArticleFlag';
|
|
7
7
|
export { ArticleFlag, ArticleFlags, NewArticleFlag, UpdatedArticleFlag, ExclusiveArticleFlag, SponsoredArticleFlag, LongReadArticleFlag } from './components/article-flag/ArticleFlag';
|
|
8
8
|
export { Timelines } from './components/in-article-timelines/Timelines';
|
|
9
|
+
export { SaveStar } from './components/save-star/SaveStar';
|
|
9
10
|
export { AutoNewsletterPuff } from './components/newsletter-puff/AutoNewsletterPuff';
|
|
10
11
|
export { InlineNewsletterPuff } from './components/newsletter-puff/InlineNewsletterPuff';
|
|
11
12
|
export { PreviewNewsletterPuff } from './components/newsletter-puff/preview-newsletter-puff/PreviewNewsletterPuff';
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export { BigNumbers } from './components/in-article-big-numbers/BigNumbers';
|
|
|
7
7
|
export { BreakingArticleFlag, LiveArticleFlag } from './components/article-flag/LiveArticleFlag';
|
|
8
8
|
export { ArticleFlag, ArticleFlags, NewArticleFlag, UpdatedArticleFlag, ExclusiveArticleFlag, SponsoredArticleFlag, LongReadArticleFlag } from './components/article-flag/ArticleFlag';
|
|
9
9
|
export { Timelines } from './components/in-article-timelines/Timelines';
|
|
10
|
+
export { SaveStar } from './components/save-star/SaveStar';
|
|
10
11
|
// Newsletter Components
|
|
11
12
|
export { AutoNewsletterPuff } from './components/newsletter-puff/AutoNewsletterPuff';
|
|
12
13
|
export { InlineNewsletterPuff } from './components/newsletter-puff/InlineNewsletterPuff';
|
|
@@ -33,4 +34,4 @@ export { default as ArticleHeader } from './components/article-header/ArticleHea
|
|
|
33
34
|
export { UpdatedTimestamp } from './components/updated-timestamp/UpdatedTimestamp';
|
|
34
35
|
export { UpdatedTimeProvider } from './helpers/time/UpdatedTimeProvider';
|
|
35
36
|
export { default as safeDecodeURIComponent } from './utils/safeDecodeURIComponent';
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCO0FBQ3JCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hFLE9BQU8sRUFDTCxvQkFBb0IsRUFDckIsTUFBTSxxRUFBcUUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDNUUsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixlQUFlLEVBQ2hCLE1BQU0sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyxFQUNMLFdBQVcsRUFDWCxZQUFZLEVBQ1osY0FBYyxFQUNkLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNwQixNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFM0Qsd0JBQXdCO0FBQ3hCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbkIsTUFBTSxpREFBaUQsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3JCLE1BQU0sbURBQW1ELENBQUM7QUFDM0QsT0FBTyxFQUNMLHFCQUFxQixFQUN0QixNQUFNLDRFQUE0RSxDQUFDO0FBRXBGLG1CQUFtQjtBQUNuQixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3JCLE1BQU0sMERBQTBELENBQUM7QUFDbEUsT0FBTyxFQUNMLHFCQUFxQixFQUN0QixNQUFNLDREQUE0RCxDQUFDO0FBQ3BFLE9BQU8sRUFDTCxtQkFBbUIsRUFDcEIsTUFBTSx3REFBd0QsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3ZCLE1BQU0sK0RBQStELENBQUM7QUFFdkUsT0FBTyxFQUNMLGlCQUFpQixFQUNsQixNQUFNLG9EQUFvRCxDQUFDO0FBQzVELE9BQU8sRUFDTCxrQkFBa0IsRUFDbkIsTUFBTSxzREFBc0QsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2pCLE1BQU0sa0RBQWtELENBQUM7QUFDMUQsT0FBTyxFQUNMLG1CQUFtQixFQUNwQixNQUFNLHlEQUF5RCxDQUFDO0FBRWpFLDZCQUE2QjtBQUM3QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2pCLE1BQU0sb0RBQW9ELENBQUM7QUFFNUQsVUFBVTtBQUNWLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2pCLE1BQU0sK0NBQStDLENBQUM7QUFDdkQsT0FBTyxFQUNMLHVCQUF1QixFQUN4QixNQUFNLDRDQUE0QyxDQUFDO0FBRXBELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXZFLE9BQU8sRUFDTCxPQUFPLElBQUksYUFBYSxFQUN6QixNQUFNLDJDQUEyQyxDQUFDO0FBRW5ELE9BQU8sRUFDTCxnQkFBZ0IsRUFDakIsTUFBTSxpREFBaUQsQ0FBQztBQUV6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RSxPQUFPLEVBQ0wsT0FBTyxJQUFJLHNCQUFzQixFQUNsQyxNQUFNLGdDQUFnQyxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@times-components/ts-components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.55.0",
|
|
4
4
|
"description": "Reuseable Typescript React Components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"dev": "dist/index.js",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"@times-components/link": "3.11.6",
|
|
57
57
|
"@times-components/provider": "1.33.6",
|
|
58
58
|
"@times-components/provider-queries": "2.18.0",
|
|
59
|
-
"@times-components/related-articles": "6.12.
|
|
59
|
+
"@times-components/related-articles": "6.12.17",
|
|
60
60
|
"@times-components/ts-slices": "1.6.7",
|
|
61
61
|
"@times-components/ts-styleguide": "1.37.6",
|
|
62
62
|
"@times-components/utils": "6.15.6",
|
|
@@ -114,5 +114,5 @@
|
|
|
114
114
|
"@testing-library/jest-dom/extend-expect"
|
|
115
115
|
]
|
|
116
116
|
},
|
|
117
|
-
"gitHead": "
|
|
117
|
+
"gitHead": "4850e14b67950ecdef8730cea86c0a19960e16d2"
|
|
118
118
|
}
|