@times-components/ts-components 1.16.3 → 1.18.1
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 +14 -14
- 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/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
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { colours } from '@times-components/styleguide';
|
|
3
|
+
import { LiveArticleFlag, BreakingArticleFlag } from './LiveArticleFlag';
|
|
4
|
+
import {
|
|
5
|
+
ArticleFlagContainer,
|
|
6
|
+
ArticleFlagBullet,
|
|
7
|
+
ArticleFlagTextContainer,
|
|
8
|
+
FlagPadding,
|
|
9
|
+
Flags,
|
|
10
|
+
FlagsContainer
|
|
11
|
+
} from './styles';
|
|
12
|
+
import getActiveFlags from './getActiveFlags';
|
|
13
|
+
|
|
14
|
+
const ArticleFlag: React.FC<{ color: string; title: string }> = ({
|
|
15
|
+
color = colours.functional.primary,
|
|
16
|
+
title
|
|
17
|
+
}) => (
|
|
18
|
+
<ArticleFlagContainer>
|
|
19
|
+
<ArticleFlagBullet color={color} />
|
|
20
|
+
<ArticleFlagTextContainer
|
|
21
|
+
aria-label={`${title} Flag`}
|
|
22
|
+
color={color}
|
|
23
|
+
data-testid={`flag-${title}`}
|
|
24
|
+
>
|
|
25
|
+
{title.toLowerCase()}
|
|
26
|
+
</ArticleFlagTextContainer>
|
|
27
|
+
</ArticleFlagContainer>
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
const NewArticleFlag: React.FC = () => (
|
|
31
|
+
<ArticleFlag color={colours.functional.articleFlagNew} title="new" />
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
const UpdatedArticleFlag: React.FC = () => (
|
|
35
|
+
<ArticleFlag color={colours.functional.articleFlagUpdated} title="updated" />
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
const ExclusiveArticleFlag: React.FC = () => (
|
|
39
|
+
<ArticleFlag
|
|
40
|
+
color={colours.functional.articleFlagExclusive}
|
|
41
|
+
title="exclusive"
|
|
42
|
+
/>
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
const SponsoredArticleFlag: React.FC = () => (
|
|
46
|
+
<ArticleFlag color={colours.functional.tertiary} title="sponsored" />
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
const LongReadArticleFlag: React.FC = () => (
|
|
50
|
+
<ArticleFlag color={colours.functional.secondary} title="long read" />
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
const flagsMapping = () =>
|
|
54
|
+
new Map([
|
|
55
|
+
['NEW', <NewArticleFlag />],
|
|
56
|
+
['LIVE', <LiveArticleFlag />],
|
|
57
|
+
['BREAKING', <BreakingArticleFlag />],
|
|
58
|
+
['UPDATED', <UpdatedArticleFlag />],
|
|
59
|
+
['EXCLUSIVE', <ExclusiveArticleFlag />],
|
|
60
|
+
['SPONSORED', <SponsoredArticleFlag />],
|
|
61
|
+
['LONGREAD', <LongReadArticleFlag />]
|
|
62
|
+
]);
|
|
63
|
+
|
|
64
|
+
export type FlagType = Array<{
|
|
65
|
+
expiryTime: string | null;
|
|
66
|
+
type: string;
|
|
67
|
+
}>;
|
|
68
|
+
|
|
69
|
+
const FlagsView: React.FC<{ allFlags: FlagType }> = ({ allFlags }) => {
|
|
70
|
+
return (
|
|
71
|
+
<Flags>
|
|
72
|
+
{allFlags.map(flag => (
|
|
73
|
+
<FlagPadding key={flag.type} allFlags={allFlags}>
|
|
74
|
+
{flagsMapping().get(flag.type)}
|
|
75
|
+
</FlagPadding>
|
|
76
|
+
))}
|
|
77
|
+
</Flags>
|
|
78
|
+
);
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const ArticleFlags: React.FC<{
|
|
82
|
+
flags: FlagType;
|
|
83
|
+
longRead: boolean;
|
|
84
|
+
withContainer: boolean;
|
|
85
|
+
}> = ({ flags = [], longRead = false, withContainer = false }) => {
|
|
86
|
+
const activeFlags = getActiveFlags(flags);
|
|
87
|
+
const allFlags = [
|
|
88
|
+
...activeFlags,
|
|
89
|
+
...(longRead ? [{ expiryTime: null, type: 'LONGREAD' }] : [])
|
|
90
|
+
];
|
|
91
|
+
|
|
92
|
+
if (!allFlags.length) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (!withContainer) {
|
|
97
|
+
return <FlagsView allFlags={allFlags} />;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return (
|
|
101
|
+
<FlagsContainer>
|
|
102
|
+
<FlagsView allFlags={allFlags} />
|
|
103
|
+
</FlagsContainer>
|
|
104
|
+
);
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
export default ArticleFlag;
|
|
108
|
+
|
|
109
|
+
export {
|
|
110
|
+
getActiveFlags,
|
|
111
|
+
ArticleFlag,
|
|
112
|
+
ArticleFlags,
|
|
113
|
+
NewArticleFlag,
|
|
114
|
+
UpdatedArticleFlag,
|
|
115
|
+
ExclusiveArticleFlag,
|
|
116
|
+
SponsoredArticleFlag,
|
|
117
|
+
LongReadArticleFlag
|
|
118
|
+
};
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
LiveArticleFlagContainer,
|
|
4
|
+
LiveDiamondContainer,
|
|
5
|
+
LiveArticleFlagTextContainer
|
|
6
|
+
} from './styles';
|
|
7
|
+
|
|
8
|
+
export const BaseLiveArticleFlag: React.FC<{ title: string }> = ({ title }) => (
|
|
9
|
+
<LiveArticleFlagContainer>
|
|
10
|
+
<LiveDiamondContainer>{'\u25c6'}</LiveDiamondContainer>
|
|
11
|
+
<LiveArticleFlagTextContainer>{title}</LiveArticleFlagTextContainer>
|
|
12
|
+
</LiveArticleFlagContainer>
|
|
13
|
+
);
|
|
3
14
|
|
|
4
15
|
export const LiveArticleFlag: React.FC = () => (
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
16
|
+
<BaseLiveArticleFlag title="LIVE" />
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
export const BreakingArticleFlag: React.FC = () => (
|
|
20
|
+
<BaseLiveArticleFlag title="BREAKING" />
|
|
9
21
|
);
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '@testing-library/react';
|
|
3
|
+
import '@testing-library/jest-dom';
|
|
4
|
+
import {
|
|
5
|
+
ArticleFlag,
|
|
6
|
+
ArticleFlags,
|
|
7
|
+
NewArticleFlag,
|
|
8
|
+
UpdatedArticleFlag,
|
|
9
|
+
ExclusiveArticleFlag,
|
|
10
|
+
SponsoredArticleFlag,
|
|
11
|
+
LongReadArticleFlag
|
|
12
|
+
} from '../ArticleFlag';
|
|
13
|
+
import mockDate from 'mockdate';
|
|
14
|
+
|
|
15
|
+
jest.mock('@times-components/ts-components', () => ({
|
|
16
|
+
__esModule: true,
|
|
17
|
+
...jest.requireActual('@times-components/ts-components'),
|
|
18
|
+
LiveArticleFlag: 'LiveArticleFlag'
|
|
19
|
+
}));
|
|
20
|
+
|
|
21
|
+
describe('ArticleFlag', () => {
|
|
22
|
+
// GMT: Thursday, 14 March 2019 16:22:54
|
|
23
|
+
beforeEach(() => {
|
|
24
|
+
mockDate.set(1552580574000);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
afterEach(() => {
|
|
28
|
+
mockDate.reset();
|
|
29
|
+
});
|
|
30
|
+
it('renders an article flag', () => {
|
|
31
|
+
const { baseElement } = render(
|
|
32
|
+
<ArticleFlag title="No Colour" color={''} />
|
|
33
|
+
);
|
|
34
|
+
expect(baseElement).toMatchSnapshot();
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('renders a red article flag', () => {
|
|
38
|
+
const { baseElement } = render(
|
|
39
|
+
<ArticleFlag color="red" title="Coloured Red" />
|
|
40
|
+
);
|
|
41
|
+
expect(baseElement).toMatchSnapshot();
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('renders the new article flag', () => {
|
|
45
|
+
const { baseElement, getByText } = render(<NewArticleFlag />);
|
|
46
|
+
expect(getByText('new')).toBeTruthy();
|
|
47
|
+
expect(baseElement).toMatchSnapshot();
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it('renders the updated article flag', () => {
|
|
51
|
+
const { baseElement, getByText } = render(<UpdatedArticleFlag />);
|
|
52
|
+
expect(getByText('updated')).toBeTruthy();
|
|
53
|
+
expect(baseElement).toMatchSnapshot();
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
it('renders the exclusive article flag', () => {
|
|
57
|
+
const { baseElement, getByText } = render(<ExclusiveArticleFlag />);
|
|
58
|
+
expect(getByText('exclusive')).toBeTruthy();
|
|
59
|
+
expect(baseElement).toMatchSnapshot();
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it('renders the sponsored article flag', () => {
|
|
63
|
+
const { baseElement, getByText } = render(<SponsoredArticleFlag />);
|
|
64
|
+
expect(getByText('sponsored')).toBeTruthy();
|
|
65
|
+
expect(baseElement).toMatchSnapshot();
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it('renders the long read article flag', () => {
|
|
69
|
+
const { baseElement, getByText } = render(<LongReadArticleFlag />);
|
|
70
|
+
expect(getByText('long read')).toBeTruthy();
|
|
71
|
+
expect(baseElement).toMatchSnapshot();
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it('renders multiple article flags', () => {
|
|
75
|
+
const { baseElement } = render(
|
|
76
|
+
<ArticleFlags
|
|
77
|
+
flags={[
|
|
78
|
+
{ expiryTime: '2030-03-13T12:00:00.000Z', type: 'UPDATED' },
|
|
79
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'EXCLUSIVE' },
|
|
80
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'NEW' },
|
|
81
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'SPONSORED' }
|
|
82
|
+
]}
|
|
83
|
+
longRead
|
|
84
|
+
withContainer={false}
|
|
85
|
+
/>
|
|
86
|
+
);
|
|
87
|
+
expect(baseElement).toMatchSnapshot();
|
|
88
|
+
});
|
|
89
|
+
it('renders multiple article flags in a container', () => {
|
|
90
|
+
const { baseElement } = render(
|
|
91
|
+
<ArticleFlags
|
|
92
|
+
flags={[
|
|
93
|
+
{ expiryTime: '2030-03-13T12:00:00.000Z', type: 'UPDATED' },
|
|
94
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'EXCLUSIVE' },
|
|
95
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'NEW' },
|
|
96
|
+
{ expiryTime: '2030-03-14T12:00:00.000Z', type: 'SPONSORED' }
|
|
97
|
+
]}
|
|
98
|
+
longRead
|
|
99
|
+
withContainer
|
|
100
|
+
/>
|
|
101
|
+
);
|
|
102
|
+
expect(baseElement).toMatchSnapshot();
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
it('does not render article flags if there are none', () => {
|
|
106
|
+
const { baseElement } = render(
|
|
107
|
+
<ArticleFlags flags={[]} longRead={false} withContainer={false} />
|
|
108
|
+
);
|
|
109
|
+
expect(baseElement).toMatchSnapshot();
|
|
110
|
+
});
|
|
111
|
+
});
|
|
@@ -2,10 +2,26 @@ import React from 'react';
|
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
3
|
import '@testing-library/jest-dom';
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
BaseLiveArticleFlag,
|
|
7
|
+
BreakingArticleFlag,
|
|
8
|
+
LiveArticleFlag
|
|
9
|
+
} from '../LiveArticleFlag';
|
|
6
10
|
|
|
7
|
-
describe('
|
|
8
|
-
it('should render the
|
|
11
|
+
describe('LiveArticleFlag', () => {
|
|
12
|
+
it('should render the base live article flag', () => {
|
|
13
|
+
const { baseElement, getByText } = render(
|
|
14
|
+
<BaseLiveArticleFlag title="BASE" />
|
|
15
|
+
);
|
|
16
|
+
expect(getByText('BASE')).toBeTruthy();
|
|
17
|
+
expect(baseElement).toMatchSnapshot();
|
|
18
|
+
});
|
|
19
|
+
it('should render the breaking article flag', () => {
|
|
20
|
+
const { baseElement, getByText } = render(<BreakingArticleFlag />);
|
|
21
|
+
expect(getByText('BREAKING')).toBeTruthy();
|
|
22
|
+
expect(baseElement).toMatchSnapshot();
|
|
23
|
+
});
|
|
24
|
+
it('should render the live article flag', () => {
|
|
9
25
|
const { baseElement, getByText } = render(<LiveArticleFlag />);
|
|
10
26
|
expect(getByText('LIVE')).toBeTruthy();
|
|
11
27
|
expect(baseElement).toMatchSnapshot();
|
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`ArticleFlag does not render article flags if there are none 1`] = `
|
|
4
|
+
<body>
|
|
5
|
+
<div />
|
|
6
|
+
</body>
|
|
7
|
+
`;
|
|
8
|
+
|
|
9
|
+
exports[`ArticleFlag renders a red article flag 1`] = `
|
|
10
|
+
<body>
|
|
11
|
+
<div>
|
|
12
|
+
<div
|
|
13
|
+
class="sc-bdVaJa fXEEbM"
|
|
14
|
+
>
|
|
15
|
+
<div
|
|
16
|
+
class="sc-htpNat ZOZQE"
|
|
17
|
+
color="red"
|
|
18
|
+
/>
|
|
19
|
+
<div
|
|
20
|
+
aria-label="Coloured Red Flag"
|
|
21
|
+
class="sc-ifAKCX dTECV"
|
|
22
|
+
color="red"
|
|
23
|
+
data-testid="flag-Coloured Red"
|
|
24
|
+
>
|
|
25
|
+
coloured red
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
</body>
|
|
30
|
+
`;
|
|
31
|
+
|
|
32
|
+
exports[`ArticleFlag renders an article flag 1`] = `
|
|
33
|
+
<body>
|
|
34
|
+
<div>
|
|
35
|
+
<div
|
|
36
|
+
class="sc-bdVaJa fXEEbM"
|
|
37
|
+
>
|
|
38
|
+
<div
|
|
39
|
+
class="sc-htpNat qvwfW"
|
|
40
|
+
color=""
|
|
41
|
+
/>
|
|
42
|
+
<div
|
|
43
|
+
aria-label="No Colour Flag"
|
|
44
|
+
class="sc-ifAKCX juPnZa"
|
|
45
|
+
color=""
|
|
46
|
+
data-testid="flag-No Colour"
|
|
47
|
+
>
|
|
48
|
+
no colour
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
</body>
|
|
53
|
+
`;
|
|
54
|
+
|
|
55
|
+
exports[`ArticleFlag renders multiple article flags 1`] = `
|
|
56
|
+
<body>
|
|
57
|
+
<div>
|
|
58
|
+
<div
|
|
59
|
+
class="sc-gzVnrw kpMYNz"
|
|
60
|
+
>
|
|
61
|
+
<div
|
|
62
|
+
class="sc-bZQynM fMCtl"
|
|
63
|
+
>
|
|
64
|
+
<div
|
|
65
|
+
class="sc-bdVaJa fXEEbM"
|
|
66
|
+
>
|
|
67
|
+
<div
|
|
68
|
+
class="sc-htpNat fugARQ"
|
|
69
|
+
color="#3C81BE"
|
|
70
|
+
/>
|
|
71
|
+
<div
|
|
72
|
+
aria-label="updated Flag"
|
|
73
|
+
class="sc-ifAKCX hSeRZN"
|
|
74
|
+
color="#3C81BE"
|
|
75
|
+
data-testid="flag-updated"
|
|
76
|
+
>
|
|
77
|
+
updated
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
<div
|
|
82
|
+
class="sc-bZQynM fMCtl"
|
|
83
|
+
>
|
|
84
|
+
<div
|
|
85
|
+
class="sc-bdVaJa fXEEbM"
|
|
86
|
+
>
|
|
87
|
+
<div
|
|
88
|
+
class="sc-htpNat dZoUoM"
|
|
89
|
+
color="#C51D24"
|
|
90
|
+
/>
|
|
91
|
+
<div
|
|
92
|
+
aria-label="exclusive Flag"
|
|
93
|
+
class="sc-ifAKCX fupmhj"
|
|
94
|
+
color="#C51D24"
|
|
95
|
+
data-testid="flag-exclusive"
|
|
96
|
+
>
|
|
97
|
+
exclusive
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
<div
|
|
102
|
+
class="sc-bZQynM fMCtl"
|
|
103
|
+
>
|
|
104
|
+
<div
|
|
105
|
+
class="sc-bdVaJa fXEEbM"
|
|
106
|
+
>
|
|
107
|
+
<div
|
|
108
|
+
class="sc-htpNat jkDJOE"
|
|
109
|
+
color="#E34605"
|
|
110
|
+
/>
|
|
111
|
+
<div
|
|
112
|
+
aria-label="new Flag"
|
|
113
|
+
class="sc-ifAKCX iquuBv"
|
|
114
|
+
color="#E34605"
|
|
115
|
+
data-testid="flag-new"
|
|
116
|
+
>
|
|
117
|
+
new
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
121
|
+
<div
|
|
122
|
+
class="sc-bZQynM fMCtl"
|
|
123
|
+
>
|
|
124
|
+
<div
|
|
125
|
+
class="sc-bdVaJa fXEEbM"
|
|
126
|
+
>
|
|
127
|
+
<div
|
|
128
|
+
class="sc-htpNat gaRHEk"
|
|
129
|
+
color="#4D4D4D"
|
|
130
|
+
/>
|
|
131
|
+
<div
|
|
132
|
+
aria-label="sponsored Flag"
|
|
133
|
+
class="sc-ifAKCX fzZyiZ"
|
|
134
|
+
color="#4D4D4D"
|
|
135
|
+
data-testid="flag-sponsored"
|
|
136
|
+
>
|
|
137
|
+
sponsored
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
<div
|
|
142
|
+
class="sc-bZQynM fMCtl"
|
|
143
|
+
>
|
|
144
|
+
<div
|
|
145
|
+
class="sc-bdVaJa fXEEbM"
|
|
146
|
+
>
|
|
147
|
+
<div
|
|
148
|
+
class="sc-htpNat fRxTiY"
|
|
149
|
+
color="#696969"
|
|
150
|
+
/>
|
|
151
|
+
<div
|
|
152
|
+
aria-label="long read Flag"
|
|
153
|
+
class="sc-ifAKCX cRBzVF"
|
|
154
|
+
color="#696969"
|
|
155
|
+
data-testid="flag-long read"
|
|
156
|
+
>
|
|
157
|
+
long read
|
|
158
|
+
</div>
|
|
159
|
+
</div>
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
</body>
|
|
164
|
+
`;
|
|
165
|
+
|
|
166
|
+
exports[`ArticleFlag renders multiple article flags in a container 1`] = `
|
|
167
|
+
<body>
|
|
168
|
+
<div>
|
|
169
|
+
<div
|
|
170
|
+
class="sc-htoDjs gNxXwX"
|
|
171
|
+
>
|
|
172
|
+
<div
|
|
173
|
+
class="sc-gzVnrw kpMYNz"
|
|
174
|
+
>
|
|
175
|
+
<div
|
|
176
|
+
class="sc-bZQynM fMCtl"
|
|
177
|
+
>
|
|
178
|
+
<div
|
|
179
|
+
class="sc-bdVaJa fXEEbM"
|
|
180
|
+
>
|
|
181
|
+
<div
|
|
182
|
+
class="sc-htpNat fugARQ"
|
|
183
|
+
color="#3C81BE"
|
|
184
|
+
/>
|
|
185
|
+
<div
|
|
186
|
+
aria-label="updated Flag"
|
|
187
|
+
class="sc-ifAKCX hSeRZN"
|
|
188
|
+
color="#3C81BE"
|
|
189
|
+
data-testid="flag-updated"
|
|
190
|
+
>
|
|
191
|
+
updated
|
|
192
|
+
</div>
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
195
|
+
<div
|
|
196
|
+
class="sc-bZQynM fMCtl"
|
|
197
|
+
>
|
|
198
|
+
<div
|
|
199
|
+
class="sc-bdVaJa fXEEbM"
|
|
200
|
+
>
|
|
201
|
+
<div
|
|
202
|
+
class="sc-htpNat dZoUoM"
|
|
203
|
+
color="#C51D24"
|
|
204
|
+
/>
|
|
205
|
+
<div
|
|
206
|
+
aria-label="exclusive Flag"
|
|
207
|
+
class="sc-ifAKCX fupmhj"
|
|
208
|
+
color="#C51D24"
|
|
209
|
+
data-testid="flag-exclusive"
|
|
210
|
+
>
|
|
211
|
+
exclusive
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
214
|
+
</div>
|
|
215
|
+
<div
|
|
216
|
+
class="sc-bZQynM fMCtl"
|
|
217
|
+
>
|
|
218
|
+
<div
|
|
219
|
+
class="sc-bdVaJa fXEEbM"
|
|
220
|
+
>
|
|
221
|
+
<div
|
|
222
|
+
class="sc-htpNat jkDJOE"
|
|
223
|
+
color="#E34605"
|
|
224
|
+
/>
|
|
225
|
+
<div
|
|
226
|
+
aria-label="new Flag"
|
|
227
|
+
class="sc-ifAKCX iquuBv"
|
|
228
|
+
color="#E34605"
|
|
229
|
+
data-testid="flag-new"
|
|
230
|
+
>
|
|
231
|
+
new
|
|
232
|
+
</div>
|
|
233
|
+
</div>
|
|
234
|
+
</div>
|
|
235
|
+
<div
|
|
236
|
+
class="sc-bZQynM fMCtl"
|
|
237
|
+
>
|
|
238
|
+
<div
|
|
239
|
+
class="sc-bdVaJa fXEEbM"
|
|
240
|
+
>
|
|
241
|
+
<div
|
|
242
|
+
class="sc-htpNat gaRHEk"
|
|
243
|
+
color="#4D4D4D"
|
|
244
|
+
/>
|
|
245
|
+
<div
|
|
246
|
+
aria-label="sponsored Flag"
|
|
247
|
+
class="sc-ifAKCX fzZyiZ"
|
|
248
|
+
color="#4D4D4D"
|
|
249
|
+
data-testid="flag-sponsored"
|
|
250
|
+
>
|
|
251
|
+
sponsored
|
|
252
|
+
</div>
|
|
253
|
+
</div>
|
|
254
|
+
</div>
|
|
255
|
+
<div
|
|
256
|
+
class="sc-bZQynM fMCtl"
|
|
257
|
+
>
|
|
258
|
+
<div
|
|
259
|
+
class="sc-bdVaJa fXEEbM"
|
|
260
|
+
>
|
|
261
|
+
<div
|
|
262
|
+
class="sc-htpNat fRxTiY"
|
|
263
|
+
color="#696969"
|
|
264
|
+
/>
|
|
265
|
+
<div
|
|
266
|
+
aria-label="long read Flag"
|
|
267
|
+
class="sc-ifAKCX cRBzVF"
|
|
268
|
+
color="#696969"
|
|
269
|
+
data-testid="flag-long read"
|
|
270
|
+
>
|
|
271
|
+
long read
|
|
272
|
+
</div>
|
|
273
|
+
</div>
|
|
274
|
+
</div>
|
|
275
|
+
</div>
|
|
276
|
+
</div>
|
|
277
|
+
</div>
|
|
278
|
+
</body>
|
|
279
|
+
`;
|
|
280
|
+
|
|
281
|
+
exports[`ArticleFlag renders the exclusive article flag 1`] = `
|
|
282
|
+
<body>
|
|
283
|
+
<div>
|
|
284
|
+
<div
|
|
285
|
+
class="sc-bdVaJa fXEEbM"
|
|
286
|
+
>
|
|
287
|
+
<div
|
|
288
|
+
class="sc-htpNat dZoUoM"
|
|
289
|
+
color="#C51D24"
|
|
290
|
+
/>
|
|
291
|
+
<div
|
|
292
|
+
aria-label="exclusive Flag"
|
|
293
|
+
class="sc-ifAKCX fupmhj"
|
|
294
|
+
color="#C51D24"
|
|
295
|
+
data-testid="flag-exclusive"
|
|
296
|
+
>
|
|
297
|
+
exclusive
|
|
298
|
+
</div>
|
|
299
|
+
</div>
|
|
300
|
+
</div>
|
|
301
|
+
</body>
|
|
302
|
+
`;
|
|
303
|
+
|
|
304
|
+
exports[`ArticleFlag renders the long read article flag 1`] = `
|
|
305
|
+
<body>
|
|
306
|
+
<div>
|
|
307
|
+
<div
|
|
308
|
+
class="sc-bdVaJa fXEEbM"
|
|
309
|
+
>
|
|
310
|
+
<div
|
|
311
|
+
class="sc-htpNat fRxTiY"
|
|
312
|
+
color="#696969"
|
|
313
|
+
/>
|
|
314
|
+
<div
|
|
315
|
+
aria-label="long read Flag"
|
|
316
|
+
class="sc-ifAKCX cRBzVF"
|
|
317
|
+
color="#696969"
|
|
318
|
+
data-testid="flag-long read"
|
|
319
|
+
>
|
|
320
|
+
long read
|
|
321
|
+
</div>
|
|
322
|
+
</div>
|
|
323
|
+
</div>
|
|
324
|
+
</body>
|
|
325
|
+
`;
|
|
326
|
+
|
|
327
|
+
exports[`ArticleFlag renders the new article flag 1`] = `
|
|
328
|
+
<body>
|
|
329
|
+
<div>
|
|
330
|
+
<div
|
|
331
|
+
class="sc-bdVaJa fXEEbM"
|
|
332
|
+
>
|
|
333
|
+
<div
|
|
334
|
+
class="sc-htpNat jkDJOE"
|
|
335
|
+
color="#E34605"
|
|
336
|
+
/>
|
|
337
|
+
<div
|
|
338
|
+
aria-label="new Flag"
|
|
339
|
+
class="sc-ifAKCX iquuBv"
|
|
340
|
+
color="#E34605"
|
|
341
|
+
data-testid="flag-new"
|
|
342
|
+
>
|
|
343
|
+
new
|
|
344
|
+
</div>
|
|
345
|
+
</div>
|
|
346
|
+
</div>
|
|
347
|
+
</body>
|
|
348
|
+
`;
|
|
349
|
+
|
|
350
|
+
exports[`ArticleFlag renders the sponsored article flag 1`] = `
|
|
351
|
+
<body>
|
|
352
|
+
<div>
|
|
353
|
+
<div
|
|
354
|
+
class="sc-bdVaJa fXEEbM"
|
|
355
|
+
>
|
|
356
|
+
<div
|
|
357
|
+
class="sc-htpNat gaRHEk"
|
|
358
|
+
color="#4D4D4D"
|
|
359
|
+
/>
|
|
360
|
+
<div
|
|
361
|
+
aria-label="sponsored Flag"
|
|
362
|
+
class="sc-ifAKCX fzZyiZ"
|
|
363
|
+
color="#4D4D4D"
|
|
364
|
+
data-testid="flag-sponsored"
|
|
365
|
+
>
|
|
366
|
+
sponsored
|
|
367
|
+
</div>
|
|
368
|
+
</div>
|
|
369
|
+
</div>
|
|
370
|
+
</body>
|
|
371
|
+
`;
|
|
372
|
+
|
|
373
|
+
exports[`ArticleFlag renders the updated article flag 1`] = `
|
|
374
|
+
<body>
|
|
375
|
+
<div>
|
|
376
|
+
<div
|
|
377
|
+
class="sc-bdVaJa fXEEbM"
|
|
378
|
+
>
|
|
379
|
+
<div
|
|
380
|
+
class="sc-htpNat fugARQ"
|
|
381
|
+
color="#3C81BE"
|
|
382
|
+
/>
|
|
383
|
+
<div
|
|
384
|
+
aria-label="updated Flag"
|
|
385
|
+
class="sc-ifAKCX hSeRZN"
|
|
386
|
+
color="#3C81BE"
|
|
387
|
+
data-testid="flag-updated"
|
|
388
|
+
>
|
|
389
|
+
updated
|
|
390
|
+
</div>
|
|
391
|
+
</div>
|
|
392
|
+
</div>
|
|
393
|
+
</body>
|
|
394
|
+
`;
|