@comicrelief/component-library 7.20.0 → 7.22.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/cypress/{integration/components/atoms/button.spec.js → e2e/components/atoms/button.cy.js} +4 -15
- package/cypress/{integration/components/atoms/buttonWithStates.spec.js → e2e/components/atoms/buttonWithStates.cy.js} +5 -11
- package/cypress/{integration/components/atoms/checkbox.spec.js → e2e/components/atoms/checkbox.cy.js} +2 -0
- package/cypress/{integration/components/atoms/confetti.spec.js → e2e/components/atoms/confetti.cy.js} +2 -8
- package/cypress/{integration/components/atoms/errorText.spec.js → e2e/components/atoms/errorText.cy.js} +1 -7
- package/cypress/{integration/components/atoms/input.spec.js → e2e/components/atoms/input.cy.js} +4 -14
- package/cypress/{integration/components/atoms/label.spec.js → e2e/components/atoms/label.cy.js} +3 -14
- package/cypress/{integration/components/atoms/link.spec.js → e2e/components/atoms/link.cy.js} +4 -21
- package/cypress/{integration/components/atoms/logo.spec.js → e2e/components/atoms/logo.cy.js} +4 -21
- package/cypress/{integration/components/atoms/pagination.spec.js → e2e/components/atoms/pagination.cy.js} +5 -28
- package/cypress/{integration/components/atoms/picture.spec.js → e2e/components/atoms/picture.cy.js} +4 -21
- package/cypress/{integration/components/atoms/radioButton.spec.js → e2e/components/atoms/radioButton.cy.js} +2 -7
- package/cypress/{integration/components/atoms/richText.spec.js → e2e/components/atoms/richText.cy.js} +2 -7
- package/cypress/{integration/components/atoms/select.spec.js → e2e/components/atoms/select.cy.js} +2 -7
- package/cypress/{integration/components/atoms/socialIcons.spec.js → e2e/components/atoms/socialIcons.cy.js} +4 -21
- package/cypress/{integration/components/atoms/text.spec.js → e2e/components/atoms/text.cy.js} +3 -14
- package/cypress/{integration/components/atoms/textArea.spec.js → e2e/components/atoms/textArea.cy.js} +2 -4
- package/cypress/{integration/components/atoms/textInputWithDrop.spec.js → e2e/components/atoms/textInputWithDrop.cy.js} +2 -4
- package/cypress/{integration/components/molecules/accordion.spec.js → e2e/components/molecules/accordion.cy.js} +2 -7
- package/cypress/{integration/components/molecules/articleTeaser.spec.js → e2e/components/molecules/articleTeaser.cy.js} +2 -7
- package/cypress/{integration/components/molecules/banner.spec.js → e2e/components/molecules/banner.cy.js} +2 -7
- package/cypress/{integration/components/molecules/box.spec.js → e2e/components/molecules/box.cy.js} +3 -11
- package/cypress/{integration/components/molecules/card.spec.js → e2e/components/molecules/card.cy.js} +3 -11
- package/cypress/{integration/components/molecules/cardDs.spec.js → e2e/components/molecules/cardDs.cy.js} +5 -30
- package/cypress/{integration/components/molecules/chip.spec.js → e2e/components/molecules/chip.cy.js} +2 -4
- package/cypress/{integration/components/molecules/countdown.spec.js → e2e/components/molecules/countdown.cy.js} +2 -4
- package/cypress/{integration/components/molecules/descriptor.spec.js → e2e/components/molecules/descriptor.cy.js} +3 -8
- package/cypress/{integration/components/molecules/doubleCopy.spec.js → e2e/components/molecules/doubleCopy.cy.js} +2 -4
- package/cypress/{integration/components/molecules/heroBanner.spec.js → e2e/components/molecules/heroBanner.cy.js} +2 -4
- package/cypress/{integration/components/molecules/infoBanner.spec.js → e2e/components/molecules/infoBanner.cy.js} +2 -4
- package/cypress/{integration/components/molecules/partnerLink.spec.js → e2e/components/molecules/partnerLink.cy.js} +2 -4
- package/cypress/{integration/components/molecules/promo.spec.js → e2e/components/molecules/promo.cy.js} +2 -4
- package/cypress/{integration/components/molecules/schoolLookup.spec.js → e2e/components/molecules/schoolLookup.cy.js} +3 -4
- package/cypress/{integration/components/molecules/searchInput.spec.js → e2e/components/molecules/searchInput.cy.js} +2 -4
- package/cypress/{integration/components/molecules/searchResult.spec.js → e2e/components/molecules/searchResult.cy.js} +5 -16
- package/cypress/{integration/components/molecules/shareButton.spec.js → e2e/components/molecules/shareButton.cy.js} +2 -4
- package/cypress/{integration/components/molecules/simpleSchoolLookup.spec.js → e2e/components/molecules/simpleSchoolLookup.cy.js} +3 -4
- package/cypress/{integration/components/molecules/singleMessage.spec.js → e2e/components/molecules/singleMessage.cy.js} +14 -49
- package/cypress/{integration/components/molecules/singleMessageDs.spec.js → e2e/components/molecules/singleMessageDs.cy.js} +6 -20
- package/cypress/{integration/components/molecules/typeahead.spec.js → e2e/components/molecules/typeahead.cy.js} +3 -4
- package/cypress/{integration/components/molecules/videoBanner.spec.js → e2e/components/molecules/videoBanner.cy.js} +4 -12
- package/cypress/{integration/components/organisms/cookieBanner.spec.js → e2e/components/organisms/cookieBanner.cy.js} +2 -4
- package/cypress/{integration/components/organisms/donate.spec.js → e2e/components/organisms/donate.cy.js} +5 -16
- package/cypress/{integration/components/organisms/emailSignUp.spec.js → e2e/components/organisms/emailSignUp.cy.js} +1 -4
- package/cypress/{integration/components/organisms/footer.spec.js → e2e/components/organisms/footer.cy.js} +2 -0
- package/cypress/{integration/components/organisms/header.spec.js → e2e/components/organisms/header.cy.js} +3 -8
- package/cypress/{integration/components/organisms/marketingPreferencesDSForm.spec.js → e2e/components/organisms/marketingPreferencesDSForm.cy.js} +44 -56
- package/cypress/{integration/components/organisms/membership.spec.js → e2e/components/organisms/membership.cy.js} +3 -8
- package/cypress.config.js +15 -0
- package/dist/components/Atoms/Link/Link.js +5 -5
- package/dist/components/Molecules/Promo/Promo.js +87 -12
- package/dist/components/Molecules/Promo/Promo.md +266 -4
- package/dist/components/Molecules/Promo/Promo.style.js +24 -6
- package/dist/components/Molecules/Promo/Promo.test.js +2 -2
- package/dist/components/Molecules/Promo/_ProgressRing.js +57 -0
- package/dist/components/Molecules/Promo/_PromoVideo.js +116 -0
- package/dist/components/Molecules/Promo/_PromoVideoButton.js +31 -0
- package/dist/components/Molecules/Promo/_PromoVideoButton.style.js +110 -0
- package/dist/components/Molecules/Promo/assets/Pause--black.svg +3 -0
- package/dist/components/Molecules/Promo/assets/Pause--white.svg +3 -0
- package/dist/components/Molecules/Promo/assets/Play--black.svg +3 -0
- package/dist/components/Molecules/Promo/assets/Play--white.svg +3 -0
- package/dist/components/Organisms/Footer/Footer.js +1 -1
- package/dist/components/Organisms/Footer/Footer.md +2 -2
- package/dist/components/Organisms/Footer/__snapshots__/Footer.test.js.snap +2 -2
- package/dist/components/Organisms/Footer/data/data.js +2 -2
- package/dist/components/Organisms/Header/Nav/Nav.js +2 -2
- package/dist/components/Organisms/Header/data/data.js +2 -2
- package/dist/index.js +3 -3
- package/dist/styleguide/assets/mobileVideoPosterImage.png +0 -0
- package/dist/utils/{whiteListed.js → allowListed.js} +4 -4
- package/dist/utils/allowListed.test.js +12 -0
- package/docs/utils.md +4 -4
- package/package.json +2 -2
- package/src/components/Atoms/Link/Link.js +5 -5
- package/src/components/Molecules/Promo/Promo.js +89 -13
- package/src/components/Molecules/Promo/Promo.md +266 -4
- package/src/components/Molecules/Promo/Promo.style.js +23 -2
- package/src/components/Molecules/Promo/Promo.test.js +2 -2
- package/src/components/Molecules/Promo/_ProgressRing.js +43 -0
- package/src/components/Molecules/Promo/_PromoVideo.js +105 -0
- package/src/components/Molecules/Promo/_PromoVideoButton.js +26 -0
- package/src/components/Molecules/Promo/_PromoVideoButton.style.js +121 -0
- package/src/components/Molecules/Promo/assets/Pause--black.svg +3 -0
- package/src/components/Molecules/Promo/assets/Pause--white.svg +3 -0
- package/src/components/Molecules/Promo/assets/Play--black.svg +3 -0
- package/src/components/Molecules/Promo/assets/Play--white.svg +3 -0
- package/src/components/Organisms/Footer/Footer.js +2 -2
- package/src/components/Organisms/Footer/Footer.md +2 -2
- package/src/components/Organisms/Footer/__snapshots__/Footer.test.js.snap +2 -2
- package/src/components/Organisms/Footer/data/data.js +2 -2
- package/src/components/Organisms/Header/Nav/Nav.js +2 -2
- package/src/components/Organisms/Header/data/data.js +2 -2
- package/src/index.js +1 -1
- package/src/styleguide/assets/mobileVideoPosterImage.png +0 -0
- package/src/utils/{whiteListed.js → allowListed.js} +6 -5
- package/src/utils/allowListed.test.js +9 -0
- package/cypress.json +0 -6
- package/dist/utils/whiteListed.test.js +0 -12
- package/src/utils/whiteListed.test.js +0 -9
- /package/cypress/support/{index.js → e2e.js} +0 -0
|
@@ -52,7 +52,7 @@ Footer.propTypes = {
|
|
|
52
52
|
navItems: PropTypes.objectOf(PropTypes.shape),
|
|
53
53
|
footerCopy: PropTypes.string,
|
|
54
54
|
campaign: PropTypes.string,
|
|
55
|
-
|
|
55
|
+
overrideallowList: PropTypes.bool,
|
|
56
56
|
additionalLegalLine: PropTypes.string
|
|
57
57
|
};
|
|
58
58
|
|
|
@@ -60,7 +60,7 @@ Footer.defaultProps = {
|
|
|
60
60
|
navItems: {},
|
|
61
61
|
footerCopy: '',
|
|
62
62
|
campaign: 'Comic Relief',
|
|
63
|
-
|
|
63
|
+
overrideallowList: false,
|
|
64
64
|
additionalLegalLine: ''
|
|
65
65
|
};
|
|
66
66
|
|
|
@@ -8,12 +8,12 @@ import footerCopy from './data/footerCopy';
|
|
|
8
8
|
<p>Standard footer</p>
|
|
9
9
|
<Footer navItems={data} footerCopy={footerCopy.copy} campaign="Comic Relief" />
|
|
10
10
|
|
|
11
|
-
<p>Overrides
|
|
11
|
+
<p>Overrides allowList functionality for external usage</p>
|
|
12
12
|
<Footer
|
|
13
13
|
navItems={data}
|
|
14
14
|
footerCopy={footerCopy.copy}
|
|
15
15
|
campaign="Comic Relief"
|
|
16
|
-
|
|
16
|
+
overrideallowList
|
|
17
17
|
/>
|
|
18
18
|
|
|
19
19
|
<p>Adding a additionalLegalLine to the top of the footer</p>
|
|
@@ -1206,7 +1206,7 @@ exports[`renders correctly 1`] = `
|
|
|
1206
1206
|
color="white"
|
|
1207
1207
|
size="s"
|
|
1208
1208
|
>
|
|
1209
|
-
Test
|
|
1209
|
+
Test allowListed external link
|
|
1210
1210
|
</span>
|
|
1211
1211
|
</a>
|
|
1212
1212
|
</li>
|
|
@@ -1226,7 +1226,7 @@ exports[`renders correctly 1`] = `
|
|
|
1226
1226
|
color="white"
|
|
1227
1227
|
size="s"
|
|
1228
1228
|
>
|
|
1229
|
-
Test non-
|
|
1229
|
+
Test non-allowListed external link
|
|
1230
1230
|
</span>
|
|
1231
1231
|
<span
|
|
1232
1232
|
className="c24"
|
|
@@ -177,14 +177,14 @@ export default {
|
|
|
177
177
|
}
|
|
178
178
|
},
|
|
179
179
|
{
|
|
180
|
-
title: 'Test
|
|
180
|
+
title: 'Test allowListed external link',
|
|
181
181
|
url: 'https://www.sportrelief.com',
|
|
182
182
|
internal: {
|
|
183
183
|
type: 'ContentfulComponentLink'
|
|
184
184
|
}
|
|
185
185
|
},
|
|
186
186
|
{
|
|
187
|
-
title: 'Test non-
|
|
187
|
+
title: 'Test non-allowListed external link',
|
|
188
188
|
url: 'https://bing.com',
|
|
189
189
|
internal: {
|
|
190
190
|
type: 'ContentfulComponentLink'
|
|
@@ -6,7 +6,7 @@ import BurgerMenu from '../Burger/BurgerMenu';
|
|
|
6
6
|
import { sizes } from '../../../../theme/shared/breakpoint';
|
|
7
7
|
import NavHelper from '../../../../utils/navHelper';
|
|
8
8
|
import { InternalLinkHelper } from '../../../../utils/internalLinkHelper';
|
|
9
|
-
import
|
|
9
|
+
import allowListed from '../../../../utils/allowListed';
|
|
10
10
|
import chevronDown from './chevron-down.svg';
|
|
11
11
|
|
|
12
12
|
import {
|
|
@@ -77,7 +77,7 @@ const MainNav = ({ navItems }) => {
|
|
|
77
77
|
|
|
78
78
|
/* Determine which field represents our url path */
|
|
79
79
|
let thisUrl = NavHelper(thisFirstChild);
|
|
80
|
-
const relNoopener = !
|
|
80
|
+
const relNoopener = !allowListed(thisUrl) && 'noopener';
|
|
81
81
|
const hasSubMenu = group.links && group.links.length > 1;
|
|
82
82
|
const hasPopUp = hasSubMenu ? 'true' : null;
|
|
83
83
|
thisUrl = InternalLinkHelper(thisUrl);
|
|
@@ -151,14 +151,14 @@ export default {
|
|
|
151
151
|
id: 'eaec5191-bbb3-5e8d-b966-c53fff34998a',
|
|
152
152
|
links: [
|
|
153
153
|
{
|
|
154
|
-
title: 'Test
|
|
154
|
+
title: 'Test allowListed external link',
|
|
155
155
|
url: 'https://www.sportrelief.com',
|
|
156
156
|
internal: {
|
|
157
157
|
type: 'ContentfulComponentLink'
|
|
158
158
|
}
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
|
-
title: 'Test non-
|
|
161
|
+
title: 'Test non-allowListed external link',
|
|
162
162
|
url: 'https://bing.com',
|
|
163
163
|
internal: {
|
|
164
164
|
type: 'ContentfulComponentLink'
|
package/src/index.js
CHANGED
|
@@ -6,7 +6,7 @@ export { default as ThemeProvider } from './theme/ThemeProvider';
|
|
|
6
6
|
/* Utils */
|
|
7
7
|
export { default as hideVisually } from './theme/shared/hideVisually';
|
|
8
8
|
export { default as zIndex } from './theme/shared/zIndex';
|
|
9
|
-
export { default as
|
|
9
|
+
export { default as allowListed } from './utils/allowListed';
|
|
10
10
|
export { default as spacing } from './theme/shared/spacing';
|
|
11
11
|
export { default as breakpoint } from './theme/shared/breakpoint';
|
|
12
12
|
export { media, screen, container } from './theme/shared/size';
|
|
Binary file
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
const
|
|
1
|
+
const allowList = [
|
|
2
2
|
'https://giftaid.comicrelief.com',
|
|
3
3
|
'https://donation.comicrelief.com',
|
|
4
4
|
'https://www.comicrelief.com',
|
|
5
5
|
'https://www.sportrelief.com',
|
|
6
6
|
'https://app.beapplied.com/org/comic-relief',
|
|
7
|
-
'stories.comicrelief.com'
|
|
7
|
+
'stories.comicrelief.com',
|
|
8
|
+
'https://form.typeform.com'
|
|
8
9
|
];
|
|
9
10
|
|
|
10
|
-
const
|
|
11
|
+
const allowListed = url => {
|
|
11
12
|
if (
|
|
12
13
|
url !== undefined
|
|
13
14
|
&& url !== null
|
|
14
|
-
&&
|
|
15
|
+
&& allowList.some(v => url.indexOf(v) >= 0)
|
|
15
16
|
) {
|
|
16
17
|
return true;
|
|
17
18
|
}
|
|
18
19
|
return false;
|
|
19
20
|
};
|
|
20
21
|
|
|
21
|
-
export default
|
|
22
|
+
export default allowListed;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import allowListed from './allowListed';
|
|
2
|
+
|
|
3
|
+
it('link is allowListed', () => {
|
|
4
|
+
expect(allowListed('https://www.comicrelief.com/home')).toBe(true);
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
it('link is not allowListed', () => {
|
|
8
|
+
expect(allowListed('https://www.google.co.uk/')).toBe(false);
|
|
9
|
+
});
|
package/cypress.json
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _whiteListed = _interopRequireDefault(require("./whiteListed"));
|
|
6
|
-
|
|
7
|
-
it('link is whitelisted', function () {
|
|
8
|
-
expect((0, _whiteListed.default)('https://www.comicrelief.com/home')).toBe(true);
|
|
9
|
-
});
|
|
10
|
-
it('link is not whitelisted', function () {
|
|
11
|
-
expect((0, _whiteListed.default)('https://www.google.co.uk/')).toBe(false);
|
|
12
|
-
});
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import whiteListed from './whiteListed';
|
|
2
|
-
|
|
3
|
-
it('link is whitelisted', () => {
|
|
4
|
-
expect(whiteListed('https://www.comicrelief.com/home')).toBe(true);
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
it('link is not whitelisted', () => {
|
|
8
|
-
expect(whiteListed('https://www.google.co.uk/')).toBe(false);
|
|
9
|
-
});
|
|
File without changes
|