@times-components/ts-components 1.16.2 → 1.18.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 +38 -0
- package/README.md +7 -0
- package/dist/components/article-flag/ArticleFlag.d.ts +22 -0
- package/dist/components/article-flag/ArticleFlag.js +43 -0
- package/dist/components/article-flag/{LiveArticleFlag.stories.d.ts → ArticleFlag.stories.d.ts} +0 -0
- package/dist/components/article-flag/ArticleFlag.stories.js +29 -0
- package/dist/components/article-flag/LiveArticleFlag.d.ts +4 -0
- package/dist/components/article-flag/LiveArticleFlag.js +7 -5
- package/dist/components/article-flag/__tests__/ArticleFlag.test.d.ts +1 -0
- package/dist/components/article-flag/__tests__/ArticleFlag.test.js +75 -0
- package/dist/components/article-flag/__tests__/LiveArticleFlag.test.js +14 -4
- package/dist/components/article-flag/__tests__/getActiveFlags.test.d.ts +1 -0
- package/dist/components/article-flag/__tests__/getActiveFlags.test.js +36 -0
- package/dist/components/article-flag/getActiveFlags.d.ts +3 -0
- package/dist/components/article-flag/getActiveFlags.js +9 -0
- package/dist/components/article-flag/styles.d.ts +12 -3
- package/dist/components/article-flag/styles.js +38 -4
- package/dist/components/inline-dialog/InlineDialog.d.ts +7 -0
- package/dist/components/inline-dialog/InlineDialog.js +7 -0
- package/dist/components/inline-dialog/InlineDialog.stories.d.ts +1 -0
- package/dist/components/inline-dialog/InlineDialog.stories.js +8 -0
- package/dist/components/inline-dialog/__tests__/InlineDialog.test.d.ts +1 -0
- package/dist/components/inline-dialog/__tests__/InlineDialog.test.js +17 -0
- package/dist/components/inline-dialog/styles.d.ts +4 -0
- package/dist/components/inline-dialog/styles.js +50 -0
- package/dist/components/inline-message/styles.js +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +4 -2
- package/jest.config.js +4 -4
- package/package.json +6 -6
- package/rnw.js +1 -1
- package/src/components/article-flag/ArticleFlag.stories.tsx +48 -0
- package/src/components/article-flag/ArticleFlag.tsx +118 -0
- package/src/components/article-flag/LiveArticleFlag.tsx +17 -5
- package/src/components/article-flag/__tests__/ArticleFlag.test.tsx +111 -0
- package/src/components/article-flag/__tests__/LiveArticleFlag.test.tsx +19 -3
- package/src/components/article-flag/__tests__/__snapshots__/ArticleFlag.test.tsx.snap +394 -0
- package/src/components/article-flag/__tests__/__snapshots__/LiveArticleFlag.test.tsx.snap +46 -4
- package/src/components/article-flag/__tests__/getActiveFlags.test.ts +38 -0
- package/src/components/article-flag/getActiveFlags.ts +14 -0
- package/src/components/article-flag/styles.ts +41 -3
- package/src/components/inline-dialog/InlineDialog.stories.tsx +17 -0
- package/src/components/inline-dialog/InlineDialog.tsx +17 -0
- package/src/components/inline-dialog/__tests__/InlineDialog.test.tsx +21 -0
- package/src/components/inline-dialog/__tests__/__snapshots__/InlineDialog.test.tsx.snap +26 -0
- package/src/components/inline-dialog/styles.ts +51 -0
- package/src/components/inline-message/__tests__/__snapshots__/InlineMessage.test.tsx.snap +1 -1
- package/src/components/inline-message/styles.ts +1 -1
- package/src/components/latest-from-section/__tests__/__snapshots__/LatestFromSection.test.tsx.snap +3 -0
- package/src/components/newsletter-puff/__tests__/__snapshots__/InlineNewsletterPuff.test.tsx.snap +4 -0
- package/src/components/newsletter-puff/__tests__/__snapshots__/PreviewNewsletterPuff.test.tsx.snap +1 -0
- package/src/index.ts +15 -1
- package/src/types/externs.d.ts +1 -0
- package/dist/components/article-flag/LiveArticleFlag.stories.js +0 -7
- package/src/components/article-flag/LiveArticleFlag.stories.tsx +0 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,44 @@
|
|
|
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.18.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.17.1...@times-components/ts-components@1.18.0) (2022-01-21)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **TDP-479:** Add article breaking flag ([#2831](https://github.com/newsuk/times-components/issues/2831)) ([f1f990a](https://github.com/newsuk/times-components/commit/f1f990ae8012fcb8d33fabc40494b1a7115cbab0))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [1.17.1](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.17.0...@times-components/ts-components@1.17.1) (2022-01-12)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @times-components/ts-components
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# [1.17.0](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.16.3...@times-components/ts-components@1.17.0) (2022-01-10)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
* **TDP-805:** No commenting for RA users ([#2833](https://github.com/newsuk/times-components/issues/2833)) ([a08c74f](https://github.com/newsuk/times-components/commit/a08c74f35b3f6d84fb484ca4e6727c1896ea0c96))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## [1.16.3](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.16.2...@times-components/ts-components@1.16.3) (2022-01-10)
|
|
37
|
+
|
|
38
|
+
**Note:** Version bump only for package @times-components/ts-components
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
6
44
|
## [1.16.2](https://github.com/newsuk/times-components/compare/@times-components/ts-components@1.16.1...@times-components/ts-components@1.16.2) (2022-01-07)
|
|
7
45
|
|
|
8
46
|
|
package/README.md
CHANGED
|
@@ -2,7 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
This package contains components written in a *Typescript*. This will allow for
|
|
4
4
|
easy migration when we need to move these to a more modern repository.
|
|
5
|
+
# Article Flag
|
|
6
|
+
Article flags are attached to an article like a label to indicate the article's
|
|
7
|
+
status. Common statuses are exported as components from this package, although both the original and "live news" flags have a `title` prop to enable a bespoke status.
|
|
5
8
|
|
|
9
|
+
The original article flags are styled with a circular bullet in front of the title, coloured text and no background colour. They include the "new", "updated", "exclusive", "sponsored" and "long read" flags. The "live news" flags, which include "live" and "breaking", are styled to have a diamond icon in front of the title and white text on a coloured background.
|
|
10
|
+
|
|
11
|
+
The flags are currently added to an article by an editor using the CMS. These
|
|
12
|
+
flags "expire" server side.
|
|
6
13
|
## Build
|
|
7
14
|
|
|
8
15
|
All the build steps have been updated to handle all the build steps:
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import getActiveFlags from './getActiveFlags';
|
|
3
|
+
declare const ArticleFlag: React.FC<{
|
|
4
|
+
color: string;
|
|
5
|
+
title: string;
|
|
6
|
+
}>;
|
|
7
|
+
declare const NewArticleFlag: React.FC;
|
|
8
|
+
declare const UpdatedArticleFlag: React.FC;
|
|
9
|
+
declare const ExclusiveArticleFlag: React.FC;
|
|
10
|
+
declare const SponsoredArticleFlag: React.FC;
|
|
11
|
+
declare const LongReadArticleFlag: React.FC;
|
|
12
|
+
export declare type FlagType = Array<{
|
|
13
|
+
expiryTime: string | null;
|
|
14
|
+
type: string;
|
|
15
|
+
}>;
|
|
16
|
+
declare const ArticleFlags: React.FC<{
|
|
17
|
+
flags: FlagType;
|
|
18
|
+
longRead: boolean;
|
|
19
|
+
withContainer: boolean;
|
|
20
|
+
}>;
|
|
21
|
+
export default ArticleFlag;
|
|
22
|
+
export { getActiveFlags, ArticleFlag, ArticleFlags, NewArticleFlag, UpdatedArticleFlag, ExclusiveArticleFlag, SponsoredArticleFlag, LongReadArticleFlag };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { colours } from '@times-components/styleguide';
|
|
3
|
+
import { LiveArticleFlag, BreakingArticleFlag } from './LiveArticleFlag';
|
|
4
|
+
import { ArticleFlagContainer, ArticleFlagBullet, ArticleFlagTextContainer, FlagPadding, Flags, FlagsContainer } from './styles';
|
|
5
|
+
import getActiveFlags from './getActiveFlags';
|
|
6
|
+
const ArticleFlag = ({ color = colours.functional.primary, title }) => (React.createElement(ArticleFlagContainer, null,
|
|
7
|
+
React.createElement(ArticleFlagBullet, { color: color }),
|
|
8
|
+
React.createElement(ArticleFlagTextContainer, { "aria-label": `${title} Flag`, color: color, "data-testid": `flag-${title}` }, title.toLowerCase())));
|
|
9
|
+
const NewArticleFlag = () => (React.createElement(ArticleFlag, { color: colours.functional.articleFlagNew, title: "new" }));
|
|
10
|
+
const UpdatedArticleFlag = () => (React.createElement(ArticleFlag, { color: colours.functional.articleFlagUpdated, title: "updated" }));
|
|
11
|
+
const ExclusiveArticleFlag = () => (React.createElement(ArticleFlag, { color: colours.functional.articleFlagExclusive, title: "exclusive" }));
|
|
12
|
+
const SponsoredArticleFlag = () => (React.createElement(ArticleFlag, { color: colours.functional.tertiary, title: "sponsored" }));
|
|
13
|
+
const LongReadArticleFlag = () => (React.createElement(ArticleFlag, { color: colours.functional.secondary, title: "long read" }));
|
|
14
|
+
const flagsMapping = () => new Map([
|
|
15
|
+
['NEW', React.createElement(NewArticleFlag, null)],
|
|
16
|
+
['LIVE', React.createElement(LiveArticleFlag, null)],
|
|
17
|
+
['BREAKING', React.createElement(BreakingArticleFlag, null)],
|
|
18
|
+
['UPDATED', React.createElement(UpdatedArticleFlag, null)],
|
|
19
|
+
['EXCLUSIVE', React.createElement(ExclusiveArticleFlag, null)],
|
|
20
|
+
['SPONSORED', React.createElement(SponsoredArticleFlag, null)],
|
|
21
|
+
['LONGREAD', React.createElement(LongReadArticleFlag, null)]
|
|
22
|
+
]);
|
|
23
|
+
const FlagsView = ({ allFlags }) => {
|
|
24
|
+
return (React.createElement(Flags, null, allFlags.map(flag => (React.createElement(FlagPadding, { key: flag.type, allFlags: allFlags }, flagsMapping().get(flag.type))))));
|
|
25
|
+
};
|
|
26
|
+
const ArticleFlags = ({ flags = [], longRead = false, withContainer = false }) => {
|
|
27
|
+
const activeFlags = getActiveFlags(flags);
|
|
28
|
+
const allFlags = [
|
|
29
|
+
...activeFlags,
|
|
30
|
+
...(longRead ? [{ expiryTime: null, type: 'LONGREAD' }] : [])
|
|
31
|
+
];
|
|
32
|
+
if (!allFlags.length) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
if (!withContainer) {
|
|
36
|
+
return React.createElement(FlagsView, { allFlags: allFlags });
|
|
37
|
+
}
|
|
38
|
+
return (React.createElement(FlagsContainer, null,
|
|
39
|
+
React.createElement(FlagsView, { allFlags: allFlags })));
|
|
40
|
+
};
|
|
41
|
+
export default ArticleFlag;
|
|
42
|
+
export { getActiveFlags, ArticleFlag, ArticleFlags, NewArticleFlag, UpdatedArticleFlag, ExclusiveArticleFlag, SponsoredArticleFlag, LongReadArticleFlag };
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZUZsYWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hcnRpY2xlLWZsYWcvQXJ0aWNsZUZsYWcudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4QixXQUFXLEVBQ1gsS0FBSyxFQUNMLGNBQWMsRUFDZixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUU5QyxNQUFNLFdBQVcsR0FBK0MsQ0FBQyxFQUMvRCxLQUFLLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQ2xDLEtBQUssRUFDTixFQUFFLEVBQUUsQ0FBQyxDQUNKLG9CQUFDLG9CQUFvQjtJQUNuQixvQkFBQyxpQkFBaUIsSUFBQyxLQUFLLEVBQUUsS0FBSyxHQUFJO0lBQ25DLG9CQUFDLHdCQUF3QixrQkFDWCxHQUFHLEtBQUssT0FBTyxFQUMzQixLQUFLLEVBQUUsS0FBSyxpQkFDQyxRQUFRLEtBQUssRUFBRSxJQUUzQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQ0ssQ0FDTixDQUN4QixDQUFDO0FBRUYsTUFBTSxjQUFjLEdBQWEsR0FBRyxFQUFFLENBQUMsQ0FDckMsb0JBQUMsV0FBVyxJQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxLQUFLLEVBQUMsS0FBSyxHQUFHLENBQ3RFLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUFhLEdBQUcsRUFBRSxDQUFDLENBQ3pDLG9CQUFDLFdBQVcsSUFBQyxLQUFLLEVBQUUsT0FBTyxDQUFD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
|
package/dist/components/article-flag/{LiveArticleFlag.stories.d.ts → ArticleFlag.stories.d.ts}
RENAMED
|
File without changes
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { storiesOf } from '@storybook/react';
|
|
3
|
+
import { NewArticleFlag, UpdatedArticleFlag, ExclusiveArticleFlag, SponsoredArticleFlag, LongReadArticleFlag, ArticleFlags } from './ArticleFlag';
|
|
4
|
+
import { LiveArticleFlag, BreakingArticleFlag } from './LiveArticleFlag';
|
|
5
|
+
storiesOf('Typescript Component/Article Flag', module)
|
|
6
|
+
.add('Article Flag (New)', () => React.createElement(NewArticleFlag, null))
|
|
7
|
+
.add('Article Flag (Live)', () => React.createElement(LiveArticleFlag, null))
|
|
8
|
+
.add('Article Flag (Breaking)', () => React.createElement(BreakingArticleFlag, null))
|
|
9
|
+
.add('Article Flag (Updated)', () => React.createElement(UpdatedArticleFlag, null))
|
|
10
|
+
.add('Article Flag (Exclusive)', () => React.createElement(ExclusiveArticleFlag, null))
|
|
11
|
+
.add('Article Flag (Sponsored)', () => React.createElement(SponsoredArticleFlag, null))
|
|
12
|
+
.add('Article Flag (Long Read)', () => React.createElement(LongReadArticleFlag, null))
|
|
13
|
+
.add('Article Flags', () => (React.createElement(ArticleFlags, { flags: [
|
|
14
|
+
{ expiryTime: '2030-03-13T12:00:00.000Z', type: 'LIVE' },
|
|
15
|
+
{ expiryTime: '2030-03-13T12:00:00.000Z', type: 'BREAKING' },
|
|
16
|
+
{ expiryTime: '2030-03-13T12:00:00.000Z', type: 'UPDATED' },
|
|
17
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'EXCLUSIVE' },
|
|
18
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'NEW' },
|
|
19
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'SPONSORED' }
|
|
20
|
+
], longRead: true, withContainer: false })))
|
|
21
|
+
.add('Article Flags with Container', () => (React.createElement(ArticleFlags, { flags: [
|
|
22
|
+
{ expiryTime: '2030-03-13T12:00:00.000Z', type: 'LIVE' },
|
|
23
|
+
{ expiryTime: '2030-03-13T12:00:00.000Z', type: 'BREAKING' },
|
|
24
|
+
{ expiryTime: '2030-03-13T12:00:00.000Z', type: 'UPDATED' },
|
|
25
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'EXCLUSIVE' },
|
|
26
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'NEW' },
|
|
27
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'SPONSORED' }
|
|
28
|
+
], longRead: true, withContainer: true })));
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZUZsYWcuc3Rvcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FydGljbGUtZmxhZy9BcnRpY2xlRmxhZy5zdG9yaWVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFekUsU0FBUyxDQUFDLG1DQUFtQyxFQUFFLE1BQU0sQ0FBQztLQUNuRCxHQUFHLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQUMsY0FBYyxPQUFHLENBQUM7S0FDbkQsR0FBRyxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRSxDQUFDLG9CQUFDLGVBQWUsT0FBRyxDQUFDO0tBQ3JELEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxvQkFBQyxtQkFBbUIsT0FBRyxDQUFDO0tBQzdELEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxvQkFBQyxrQkFBa0IsT0FBRyxDQUFDO0tBQzNELEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxvQkFBQyxvQkFBb0IsT0FBRyxDQUFDO0tBQy9ELEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxvQkFBQyxvQkFBb0IsT0FBRyxDQUFDO0tBQy9ELEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxvQkFBQyxtQkFBbUIsT0FBRyxDQUFDO0tBQzlELEdBQUcsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FDMUIsb0JBQUMsWUFBWSxJQUNYLEtBQUssRUFBRTtRQUNMLEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7UUFDeEQsRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtRQUM1RCxFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1FBQzNELEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7UUFDN0QsRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtRQUN2RCxFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO0tBQzlELEVBQ0QsUUFBUSxRQUNSLGFBQWEsRUFBRSxLQUFLLEdBQ3BCLENBQ0gsQ0FBQztLQUNELEdBQUcsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUN6QyxvQkFBQyxZQUFZLElBQ1gsS0FBSyxFQUFFO1FBQ0wsRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtRQUN4RCxFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1FBQzVELEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7UUFDM0QsRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtRQUM3RCxFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO1FBQ3ZELEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7S0FDOUQsRUFDRCxRQUFRLFFBQ1IsYUFBYSxTQUNiLENBQ0gsQ0FBQyxDQUFDIn0=
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
export const
|
|
4
|
-
React.createElement(
|
|
5
|
-
React.createElement(
|
|
6
|
-
|
|
2
|
+
import { LiveArticleFlagContainer, LiveDiamondContainer, LiveArticleFlagTextContainer } from './styles';
|
|
3
|
+
export const BaseLiveArticleFlag = ({ title }) => (React.createElement(LiveArticleFlagContainer, null,
|
|
4
|
+
React.createElement(LiveDiamondContainer, null, '\u25c6'),
|
|
5
|
+
React.createElement(LiveArticleFlagTextContainer, null, title)));
|
|
6
|
+
export const LiveArticleFlag = () => (React.createElement(BaseLiveArticleFlag, { title: "LIVE" }));
|
|
7
|
+
export const BreakingArticleFlag = () => (React.createElement(BaseLiveArticleFlag, { title: "BREAKING" }));
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl2ZUFydGljbGVGbGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXJ0aWNsZS1mbGFnL0xpdmVBcnRpY2xlRmxhZy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLDRCQUE0QixFQUM3QixNQUFNLFVBQVUsQ0FBQztBQUVsQixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBZ0MsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUM3RSxvQkFBQyx3QkFBd0I7SUFDdkIsb0JBQUMsb0JBQW9CLFFBQUUsUUFBUSxDQUF3QjtJQUN2RCxvQkFBQyw0QkFBNEIsUUFBRSxLQUFLLENBQWdDLENBQzNDLENBQzVCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWEsR0FBRyxFQUFFLENBQUMsQ0FDN0Msb0JBQUMsbUJBQW1CLElBQUMsS0FBSyxFQUFDLE1BQU0sR0FBRyxDQUNyQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQWEsR0FBRyxFQUFFLENBQUMsQ0FDakQsb0JBQUMsbUJBQW1CLElBQUMsS0FBSyxFQUFDLFVBQVUsR0FBRyxDQUN6QyxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '@testing-library/react';
|
|
3
|
+
import '@testing-library/jest-dom';
|
|
4
|
+
import { ArticleFlag, ArticleFlags, NewArticleFlag, UpdatedArticleFlag, ExclusiveArticleFlag, SponsoredArticleFlag, LongReadArticleFlag } from '../ArticleFlag';
|
|
5
|
+
import mockDate from 'mockdate';
|
|
6
|
+
jest.mock('@times-components/ts-components', () => ({
|
|
7
|
+
__esModule: true,
|
|
8
|
+
...jest.requireActual('@times-components/ts-components'),
|
|
9
|
+
LiveArticleFlag: 'LiveArticleFlag'
|
|
10
|
+
}));
|
|
11
|
+
describe('ArticleFlag', () => {
|
|
12
|
+
// GMT: Thursday, 14 March 2019 16:22:54
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
mockDate.set(1552580574000);
|
|
15
|
+
});
|
|
16
|
+
afterEach(() => {
|
|
17
|
+
mockDate.reset();
|
|
18
|
+
});
|
|
19
|
+
it('renders an article flag', () => {
|
|
20
|
+
const { baseElement } = render(React.createElement(ArticleFlag, { title: "No Colour", color: '' }));
|
|
21
|
+
expect(baseElement).toMatchSnapshot();
|
|
22
|
+
});
|
|
23
|
+
it('renders a red article flag', () => {
|
|
24
|
+
const { baseElement } = render(React.createElement(ArticleFlag, { color: "red", title: "Coloured Red" }));
|
|
25
|
+
expect(baseElement).toMatchSnapshot();
|
|
26
|
+
});
|
|
27
|
+
it('renders the new article flag', () => {
|
|
28
|
+
const { baseElement, getByText } = render(React.createElement(NewArticleFlag, null));
|
|
29
|
+
expect(getByText('new')).toBeTruthy();
|
|
30
|
+
expect(baseElement).toMatchSnapshot();
|
|
31
|
+
});
|
|
32
|
+
it('renders the updated article flag', () => {
|
|
33
|
+
const { baseElement, getByText } = render(React.createElement(UpdatedArticleFlag, null));
|
|
34
|
+
expect(getByText('updated')).toBeTruthy();
|
|
35
|
+
expect(baseElement).toMatchSnapshot();
|
|
36
|
+
});
|
|
37
|
+
it('renders the exclusive article flag', () => {
|
|
38
|
+
const { baseElement, getByText } = render(React.createElement(ExclusiveArticleFlag, null));
|
|
39
|
+
expect(getByText('exclusive')).toBeTruthy();
|
|
40
|
+
expect(baseElement).toMatchSnapshot();
|
|
41
|
+
});
|
|
42
|
+
it('renders the sponsored article flag', () => {
|
|
43
|
+
const { baseElement, getByText } = render(React.createElement(SponsoredArticleFlag, null));
|
|
44
|
+
expect(getByText('sponsored')).toBeTruthy();
|
|
45
|
+
expect(baseElement).toMatchSnapshot();
|
|
46
|
+
});
|
|
47
|
+
it('renders the long read article flag', () => {
|
|
48
|
+
const { baseElement, getByText } = render(React.createElement(LongReadArticleFlag, null));
|
|
49
|
+
expect(getByText('long read')).toBeTruthy();
|
|
50
|
+
expect(baseElement).toMatchSnapshot();
|
|
51
|
+
});
|
|
52
|
+
it('renders multiple article flags', () => {
|
|
53
|
+
const { baseElement } = render(React.createElement(ArticleFlags, { flags: [
|
|
54
|
+
{ expiryTime: '2030-03-13T12:00:00.000Z', type: 'UPDATED' },
|
|
55
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'EXCLUSIVE' },
|
|
56
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'NEW' },
|
|
57
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'SPONSORED' }
|
|
58
|
+
], longRead: true, withContainer: false }));
|
|
59
|
+
expect(baseElement).toMatchSnapshot();
|
|
60
|
+
});
|
|
61
|
+
it('renders multiple article flags in a container', () => {
|
|
62
|
+
const { baseElement } = render(React.createElement(ArticleFlags, { flags: [
|
|
63
|
+
{ expiryTime: '2030-03-13T12:00:00.000Z', type: 'UPDATED' },
|
|
64
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'EXCLUSIVE' },
|
|
65
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'NEW' },
|
|
66
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'SPONSORED' }
|
|
67
|
+
], longRead: true, withContainer: true }));
|
|
68
|
+
expect(baseElement).toMatchSnapshot();
|
|
69
|
+
});
|
|
70
|
+
it('does not render article flags if there are none', () => {
|
|
71
|
+
const { baseElement } = render(React.createElement(ArticleFlags, { flags: [], longRead: false, withContainer: false }));
|
|
72
|
+
expect(baseElement).toMatchSnapshot();
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJ0aWNsZUZsYWcudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FydGljbGUtZmxhZy9fX3Rlc3RzX18vQXJ0aWNsZUZsYWcudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRCxPQUFPLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUNaLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFFaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQ0FBaUMsQ0FBQztJQUN4RCxlQUFlLEVBQUUsaUJBQWlCO0NBQ25DLENBQUMsQ0FBQyxDQUFDO0FBRUosUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7SUFDM0IseUNBQXlDO0lBQ3pDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxRQUFRLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlCLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUU7UUFDakMsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FDNUIsb0JBQUMsV0FBVyxJQUFDLEtBQUssRUFBQyxXQUFXLEVBQUMs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
|
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
3
|
import '@testing-library/jest-dom';
|
|
4
|
-
import { LiveArticleFlag } from '../LiveArticleFlag';
|
|
5
|
-
describe('
|
|
6
|
-
it('should render the
|
|
4
|
+
import { BaseLiveArticleFlag, BreakingArticleFlag, LiveArticleFlag } from '../LiveArticleFlag';
|
|
5
|
+
describe('LiveArticleFlag', () => {
|
|
6
|
+
it('should render the base live article flag', () => {
|
|
7
|
+
const { baseElement, getByText } = render(React.createElement(BaseLiveArticleFlag, { title: "BASE" }));
|
|
8
|
+
expect(getByText('BASE')).toBeTruthy();
|
|
9
|
+
expect(baseElement).toMatchSnapshot();
|
|
10
|
+
});
|
|
11
|
+
it('should render the breaking article flag', () => {
|
|
12
|
+
const { baseElement, getByText } = render(React.createElement(BreakingArticleFlag, null));
|
|
13
|
+
expect(getByText('BREAKING')).toBeTruthy();
|
|
14
|
+
expect(baseElement).toMatchSnapshot();
|
|
15
|
+
});
|
|
16
|
+
it('should render the live article flag', () => {
|
|
7
17
|
const { baseElement, getByText } = render(React.createElement(LiveArticleFlag, null));
|
|
8
18
|
expect(getByText('LIVE')).toBeTruthy();
|
|
9
19
|
expect(baseElement).toMatchSnapshot();
|
|
10
20
|
});
|
|
11
21
|
});
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl2ZUFydGljbGVGbGFnLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hcnRpY2xlLWZsYWcvX190ZXN0c19fL0xpdmVBcnRpY2xlRmxhZy50ZXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNoQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7SUFDL0IsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLEdBQUcsRUFBRTtRQUNsRCxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FDdkMsb0JBQUMsbUJBQW1CLElBQUMsS0FBSyxFQUFDLE1BQU0sR0FBRyxDQUNyQyxDQUFDO1FBQ0YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7UUFDakQsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsb0JBQUMsbUJBQW1CLE9BQUcsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMscUNBQXFDLEVBQUUsR0FBRyxFQUFFO1FBQzdDLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLG9CQUFDLGVBQWUsT0FBRyxDQUFDLENBQUM7UUFDL0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import mockDate from 'mockdate';
|
|
2
|
+
import getActiveFlags from '../getActiveFlags';
|
|
3
|
+
describe('get active flags function', () => {
|
|
4
|
+
// GMT: Thursday, 14 March 2019 16:22:54
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
mockDate.set(1552580574000);
|
|
7
|
+
});
|
|
8
|
+
afterEach(() => {
|
|
9
|
+
mockDate.reset();
|
|
10
|
+
});
|
|
11
|
+
it('returns only active flags', () => {
|
|
12
|
+
const flags = [
|
|
13
|
+
{ expiryTime: '2020-03-13T12:00:00.000Z', type: 'UPDATED' },
|
|
14
|
+
{ expiryTime: '2019-03-14T12:00:00.000Z', type: 'EXCLUSIVE' }
|
|
15
|
+
];
|
|
16
|
+
expect(getActiveFlags(flags)).toEqual([flags[0]]);
|
|
17
|
+
});
|
|
18
|
+
it('returns no flags when all have expired', () => {
|
|
19
|
+
const flags = [
|
|
20
|
+
{ expiryTime: '2019-03-14T16:22:54.000Z', type: 'UPDATED' },
|
|
21
|
+
{ expiryTime: '2019-03-14T12:00:00.000Z', type: 'EXCLUSIVE' }
|
|
22
|
+
];
|
|
23
|
+
expect(getActiveFlags(flags)).toEqual([]);
|
|
24
|
+
});
|
|
25
|
+
it('returns flags when expiry time is null', () => {
|
|
26
|
+
const flags = [
|
|
27
|
+
{ expiryTime: null, type: 'UPDATED' },
|
|
28
|
+
{ expiryTime: null, type: 'EXCLUSIVE' }
|
|
29
|
+
];
|
|
30
|
+
expect(getActiveFlags(flags)).toEqual(flags);
|
|
31
|
+
});
|
|
32
|
+
it('returns no flags when no flags are provided', () => {
|
|
33
|
+
expect(getActiveFlags([])).toEqual([]);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QWN0aXZlRmxhZ3MudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2FydGljbGUtZmxhZy9fX3Rlc3RzX18vZ2V0QWN0aXZlRmxhZ3MudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxjQUFjLE1BQU0sbUJBQW1CLENBQUM7QUFFL0MsUUFBUSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtJQUN6Qyx5Q0FBeUM7SUFDekMsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtRQUNuQyxNQUFNLEtBQUssR0FBRztZQUNaLEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDM0QsRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtTQUM5RCxDQUFDO1FBQ0YsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFO1FBQ2hELE1BQU0sS0FBSyxHQUFHO1lBQ1osRUFBRSxVQUFVLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUMzRCxFQUFFLFVBQVUsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1NBQzlELENBQUM7UUFDRixNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLHdDQUF3QyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxNQUFNLEtBQUssR0FBRztZQUNaLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3JDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1NBQ3hDLENBQUM7UUFDRixNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLDZDQUE2QyxFQUFFLEdBQUcsRUFBRTtRQUNyRCxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const getActiveArticleFlags = flags => {
|
|
2
|
+
if (!flags) {
|
|
3
|
+
return [];
|
|
4
|
+
}
|
|
5
|
+
return flags.filter(flag => flag.expiryTime === null ||
|
|
6
|
+
new Date().getTime() < new Date(flag.expiryTime).getTime());
|
|
7
|
+
};
|
|
8
|
+
export default getActiveArticleFlags;
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QWN0aXZlRmxhZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hcnRpY2xlLWZsYWcvZ2V0QWN0aXZlRmxhZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxxQkFBcUIsR0FBa0MsS0FBSyxDQUFDLEVBQUU7SUFDbkUsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQ2pCLElBQUksQ0FBQyxFQUFFLENBQ0wsSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJO1FBQ3hCLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUM3RCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsZUFBZSxxQkFBcUIsQ0FBQyJ9
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
1
|
+
import { FlagType } from './ArticleFlag';
|
|
2
|
+
export declare const ArticleFlagContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
3
|
+
export declare const LiveArticleFlagContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
4
|
+
export declare const ArticleFlagBullet: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
5
|
+
export declare const LiveDiamondContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
6
|
+
export declare const ArticleFlagTextContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
7
|
+
export declare const LiveArticleFlagTextContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
8
|
+
export declare const FlagPadding: import("styled-components").StyledComponent<"div", any, {
|
|
9
|
+
allFlags: FlagType;
|
|
10
|
+
}, never>;
|
|
11
|
+
export declare const Flags: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
12
|
+
export declare const FlagsContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
@@ -1,17 +1,38 @@
|
|
|
1
1
|
import styled from 'styled-components';
|
|
2
2
|
import { fonts } from '@times-components/styleguide';
|
|
3
|
-
|
|
3
|
+
import { gqlRgbaToStyle } from '@times-components/utils';
|
|
4
|
+
export const ArticleFlagContainer = styled.div `
|
|
5
|
+
display: flex;
|
|
6
|
+
align-items: center;
|
|
7
|
+
flex-direction: row;
|
|
8
|
+
`;
|
|
9
|
+
export const LiveArticleFlagContainer = styled.div `
|
|
4
10
|
display: flex;
|
|
5
11
|
padding: 2px 6px;
|
|
6
12
|
background-color: #9f0000;
|
|
7
13
|
align-items: baseline;
|
|
8
14
|
`;
|
|
9
|
-
export const
|
|
15
|
+
export const ArticleFlagBullet = styled.div `
|
|
16
|
+
border-radius: 2.5px;
|
|
17
|
+
height: 5px;
|
|
18
|
+
width: 5px;
|
|
19
|
+
background-color: ${({ color }) => gqlRgbaToStyle(color) || color};
|
|
20
|
+
`;
|
|
21
|
+
export const LiveDiamondContainer = styled.div `
|
|
10
22
|
margin-right: 4px;
|
|
11
23
|
color: #ffffff;
|
|
12
24
|
line-height: 16px;
|
|
13
25
|
`;
|
|
14
|
-
export const
|
|
26
|
+
export const ArticleFlagTextContainer = styled.div `
|
|
27
|
+
font-family: TimesDigitalW04-RegularSC;
|
|
28
|
+
font-size: 12px;
|
|
29
|
+
font-weight: 400;
|
|
30
|
+
letter-spacing: 0.6px;
|
|
31
|
+
line-height: 12px;
|
|
32
|
+
margin-left: 5px;
|
|
33
|
+
color: ${({ color }) => gqlRgbaToStyle(color) || color};
|
|
34
|
+
`;
|
|
35
|
+
export const LiveArticleFlagTextContainer = styled.div `
|
|
15
36
|
font-family: ${fonts.supporting};
|
|
16
37
|
color: #ffffff;
|
|
17
38
|
font-weight: 500;
|
|
@@ -19,4 +40,17 @@ export const Title = styled.div `
|
|
|
19
40
|
letter-spacing: 0.1em;
|
|
20
41
|
line-height: 16px;
|
|
21
42
|
`;
|
|
22
|
-
|
|
43
|
+
export const FlagPadding = styled.div `
|
|
44
|
+
margin-right: ${({ allFlags }) => (allFlags.length > 1 ? '15px' : 0)};
|
|
45
|
+
`;
|
|
46
|
+
export const Flags = styled.div `
|
|
47
|
+
display: flex;
|
|
48
|
+
flex-direction: row;
|
|
49
|
+
flex-wrap: wrap;
|
|
50
|
+
margin-bottom: 10px;
|
|
51
|
+
`;
|
|
52
|
+
export const FlagsContainer = styled.div `
|
|
53
|
+
margin-bottom: 15px;
|
|
54
|
+
margin-top: 5px;
|
|
55
|
+
`;
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXJ0aWNsZS1mbGFnL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7Ozs7Q0FJN0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7Ozs7O0NBS2pELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBOzs7O3NCQUlyQixDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLO0NBQ2xFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBOzs7O0NBSTdDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBOzs7Ozs7O1dBT3ZDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUs7Q0FDdkQsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7aUJBQ3JDLEtBQUssQ0FBQyxVQUFVOzs7Ozs7Q0FNaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUF3QjtrQkFDM0MsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUNyRSxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7Ozs7O0NBSzlCLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQTs7O0NBR3ZDLENBQUMifQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Container, Title, Description, Button } from './styles';
|
|
3
|
+
export const InlineDialog = ({ title, href = '#', onClick, buttonText, children }) => (React.createElement(Container, null,
|
|
4
|
+
React.createElement(Title, null, title),
|
|
5
|
+
React.createElement(Description, null, children),
|
|
6
|
+
React.createElement(Button, { href: href, onClick: onClick }, buttonText)));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lRGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvaW5saW5lLWRpYWxvZy9JbmxpbmVEaWFsb2cudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBYSxNQUFNLE9BQU8sQ0FBQztBQUNsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FLcEIsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUcsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQzdELG9CQUFDLFNBQVM7SUFDUixvQkFBQyxLQUFLLFFBQUUsS0FBSyxDQUFTO0lBQ3RCLG9CQUFDLFdBQVcsUUFBRSxRQUFRLENBQWU7SUFDckMsb0JBQUMsTUFBTSxJQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFDakMsVUFBVSxDQUNKLENBQ0MsQ0FDYixDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { storiesOf } from '@storybook/react';
|
|
3
|
+
import { InlineDialog } from './InlineDialog';
|
|
4
|
+
import { action } from '@storybook/addon-actions';
|
|
5
|
+
storiesOf('Typescript Component/InlineDialog', module).add('default', () => {
|
|
6
|
+
return (React.createElement(InlineDialog, { title: "Join the conversation", buttonText: "Subscribe Now", onClick: () => action('InlineDialog')('click') }, "Commenting is only for subscribers. If you would like to comment, please sign up."));
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lRGlhbG9nLnN0b3JpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9pbmxpbmUtZGlhbG9nL0lubGluZURpYWxvZy5zdG9yaWVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbEQsU0FBUyxDQUFDLG1DQUFtQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO0lBQ3pFLE9BQU8sQ0FDTCxvQkFBQyxZQUFZLElBQ1gsS0FBSyxFQUFDLHVCQUF1QixFQUM3QixVQUFVLEVBQUMsZUFBZSxFQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx3RkFJakMsQ0FDaEIsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render, fireEvent } from '@testing-library/react';
|
|
3
|
+
import '@testing-library/jest-dom';
|
|
4
|
+
import { InlineDialog } from '../InlineDialog';
|
|
5
|
+
describe('<InlineDialog>', () => {
|
|
6
|
+
it('should render the component', () => {
|
|
7
|
+
const onClick = jest.fn();
|
|
8
|
+
const { baseElement, getByText } = render(React.createElement(InlineDialog, { title: "Title", buttonText: "Button", onClick: onClick }));
|
|
9
|
+
expect(getByText('Title')).toBeTruthy();
|
|
10
|
+
const button = getByText('Button');
|
|
11
|
+
fireEvent.click(button);
|
|
12
|
+
expect(onClick).toHaveBeenCalled();
|
|
13
|
+
expect(button).toBeTruthy();
|
|
14
|
+
expect(baseElement).toMatchSnapshot();
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5saW5lRGlhbG9nLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9pbmxpbmUtZGlhbG9nL19fdGVzdHNfXy9JbmxpbmVEaWFsb2cudGVzdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTywyQkFBMkIsQ0FBQztBQUVuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtJQUM5QixFQUFFLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMxQixNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FDdkMsb0JBQUMsWUFBWSxJQUFDLEtBQUssRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUUsT0FBTyxHQUFJLENBQ3JFLENBQUM7UUFDRixNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDbkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRTVCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
2
|
+
export declare const Title: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
3
|
+
export declare const Description: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
4
|
+
export declare const Button: import("styled-components").StyledComponent<"a", any, {}, never>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
import { breakpoints, fonts } from '@times-components/styleguide';
|
|
3
|
+
export const Container = styled.div `
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
align-items: center;
|
|
7
|
+
padding: 60px;
|
|
8
|
+
|
|
9
|
+
@media (min-width: ${breakpoints.medium}px) {
|
|
10
|
+
padding: 88px;
|
|
11
|
+
}
|
|
12
|
+
`;
|
|
13
|
+
export const Title = styled.div `
|
|
14
|
+
font-family: ${fonts.headline};
|
|
15
|
+
font-size: 32px;
|
|
16
|
+
line-height: 32px;
|
|
17
|
+
letter-spacing: 0;
|
|
18
|
+
text-align: center;
|
|
19
|
+
padding: 24px;
|
|
20
|
+
`;
|
|
21
|
+
export const Description = styled.div `
|
|
22
|
+
font-family: ${fonts.body};
|
|
23
|
+
font-weight: 400;
|
|
24
|
+
font-size: 18px;
|
|
25
|
+
line-height: 28px;
|
|
26
|
+
letter-spacing: 0;
|
|
27
|
+
text-align: center;
|
|
28
|
+
max-width: 660px;
|
|
29
|
+
`;
|
|
30
|
+
export const Button = styled.a `
|
|
31
|
+
display: flex;
|
|
32
|
+
align-items: center;
|
|
33
|
+
justify-content: center;
|
|
34
|
+
text-decoration: none;
|
|
35
|
+
|
|
36
|
+
background-color: #008387;
|
|
37
|
+
color: white;
|
|
38
|
+
font-family: ${fonts.supporting};
|
|
39
|
+
width: 127px;
|
|
40
|
+
height: 48px;
|
|
41
|
+
|
|
42
|
+
font-size: 16px;
|
|
43
|
+
font-style: normal;
|
|
44
|
+
font-weight: 500;
|
|
45
|
+
line-height: 20px;
|
|
46
|
+
letter-spacing: 0;
|
|
47
|
+
|
|
48
|
+
margin: 24px;
|
|
49
|
+
`;
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvaW5saW5lLWRpYWxvZy9zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sbUJBQW1CLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVsRSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQTs7Ozs7O3VCQU1aLFdBQVcsQ0FBQyxNQUFNOzs7Q0FHeEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBO2lCQUNkLEtBQUssQ0FBQyxRQUFROzs7Ozs7Q0FNOUIsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBO2lCQUNwQixLQUFLLENBQUMsSUFBSTs7Ozs7OztDQU8xQixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUE7Ozs7Ozs7O2lCQVFiLEtBQUssQ0FBQyxVQUFVOzs7Ozs7Ozs7OztDQVdoQyxDQUFDIn0=
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,8 @@ export { InfoCard } from './components/in-article-info-card/InfoCard';
|
|
|
3
3
|
export { GalleryCarousel } from './components/carousel/GalleryCarousel';
|
|
4
4
|
export { InfoCardBulletPoints } from './components/in-article-info-card-bulletpoints/InfoCardBulletPoints';
|
|
5
5
|
export { BigNumbers } from './components/in-article-big-numbers/BigNumbers';
|
|
6
|
-
export { LiveArticleFlag } from './components/article-flag/LiveArticleFlag';
|
|
6
|
+
export { BreakingArticleFlag, LiveArticleFlag } from './components/article-flag/LiveArticleFlag';
|
|
7
|
+
export { ArticleFlag, ArticleFlags, NewArticleFlag, UpdatedArticleFlag, ExclusiveArticleFlag, SponsoredArticleFlag, LongReadArticleFlag } from './components/article-flag/ArticleFlag';
|
|
7
8
|
export { AutoNewsletterPuff } from './components/newsletter-puff/AutoNewsletterPuff';
|
|
8
9
|
export { InlineNewsletterPuff } from './components/newsletter-puff/InlineNewsletterPuff';
|
|
9
10
|
export { PreviewNewsletterPuff } from './components/newsletter-puff/PreviewNewsletterPuff';
|
|
@@ -23,3 +24,4 @@ export { TrackingContextProvider } from './helpers/tracking/TrackingContextProvi
|
|
|
23
24
|
export { AlgoliaSearchProvider, useAlgoliaSearch } from './helpers/algolia/AlgoliaSearchProvider';
|
|
24
25
|
export { HiddenDiv } from './components/common-styles';
|
|
25
26
|
export { InlineMessage } from './components/inline-message/InlineMessage';
|
|
27
|
+
export { InlineDialog } from './components/inline-dialog/InlineDialog';
|