gatsby-core-theme 13.0.5 → 14.0.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 +57 -0
- package/gatsby-node.esm.js +1 -0
- package/package.json +1 -1
- package/src/components/app-ssr.js +3 -3
- package/src/components/app.js +3 -3
- package/src/components/atoms/author/index.js +1 -1
- package/src/components/atoms/author-box/author-box.test.js +1 -1
- package/src/components/atoms/author-box/index.js +3 -3
- package/src/components/atoms/breadcrumbs/index.js +2 -2
- package/src/components/atoms/module-title/index.js +25 -21
- package/src/components/atoms/module-title/module-title.test.js +13 -13
- package/src/components/atoms/operator-cta/index.js +1 -1
- package/src/components/atoms/scroll-to-top/index.js +6 -3
- package/src/components/atoms/scroll-to-top/scroll-to-top.module.scss +34 -2
- package/src/components/atoms/sitemap/index.js +1 -1
- package/src/components/atoms/spotlights/index.js +5 -5
- package/src/components/atoms/spotlights/spotlights.module.scss +39 -41
- package/src/components/molecules/operator-banner/index.js +79 -80
- package/src/components/molecules/operator-banner/operator-banner.module.scss +177 -144
- package/src/components/molecules/operator-banner/operator-banner.test.js +18 -6
- package/src/components/molecules/pagination/with-midpoints.js +1 -1
- package/src/components/molecules/star-rating/one-star.js +3 -5
- package/src/components/molecules/star-rating/one-star.module.scss +5 -0
- package/src/components/molecules/star-rating/one-star.test.js +3 -3
- package/src/components/molecules/toplist/default-row/default-row.module.scss +4 -0
- package/src/components/molecules/toplist/default-row/index.js +17 -8
- package/src/components/organisms/anchor/index.js +24 -18
- package/src/components/organisms/archive/index.js +1 -1
- package/src/components/organisms/cookie-consent/cookie-consent.module.scss +42 -11
- package/src/components/organisms/cookie-consent/cookie-consent.test.js +19 -11
- package/src/components/organisms/cookie-consent/index.js +41 -15
- package/src/components/organisms/navigation/index.js +13 -4
- package/src/components/organisms/navigation/navigation.module.scss +0 -5
- package/src/components/organisms/toplist/list/index.js +10 -1
- package/src/components/pages/body/body.test.js +16 -4
- package/src/context/MainProvider.js +24 -0
- package/src/helpers/getters.js +2 -2
- package/src/helpers/processor/common.js +1 -0
- package/src/helpers/processor/index.js +1 -0
- package/src/helpers/processor/modules.js +1 -0
- package/src/helpers/processor/sports.js +1 -0
- package/src/hooks/gatsby-img/index.js +3 -0
- package/src/hooks/scroll-x/index.js +50 -0
- package/src/images/logo.png +0 -0
- package/tests/factories/pages/list.factory.js +1 -0
- package/src/context/TranslationsProvider.js +0 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,60 @@
|
|
|
1
|
+
# [14.0.0](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v13.0.6...v14.0.0) (2022-11-01)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* anchor scroll ([21ad450](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/21ad450787c23899fe09351489f18c481c45aabd))
|
|
7
|
+
* fix content module operator banner issue ([6b3ccce](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/6b3ccce3ff8a53c3484d4e85d190fa0a6bb42c17))
|
|
8
|
+
* lighthouse ([933aa69](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/933aa6932de3495ad057888d02887f30f932f88b))
|
|
9
|
+
* module title and logo image ([5c0b107](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/5c0b10723a7bc1d3ed5f1526d63a6b3b8270ca6a))
|
|
10
|
+
* module title and logo image ([2b5ada5](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/2b5ada51777467cb99eba583d9457c119e88ac8a))
|
|
11
|
+
* module title and logo image ([d8c6707](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/d8c6707fe0d74daa4d53c8c7e43bef2e1a2d6fc7))
|
|
12
|
+
* removed useless divs and change logo to use gatsby image ([73a0d9b](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/73a0d9bc4336feeb5dc25accdb446565db6d68a0))
|
|
13
|
+
* scrollable prop ([fcfa439](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/fcfa439c80b60793f45a549b55ca6555b74cee59))
|
|
14
|
+
* test ([7fd7a4d](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/7fd7a4d9c044a9841cae9a674cbe999da5deea46))
|
|
15
|
+
* toplist item ([a0e369b](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/a0e369b8e2e6cec6db46bff7e8d7f83e53a0b5cb))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Code Refactoring
|
|
19
|
+
|
|
20
|
+
* add banner context to core theme ([229dedd](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/229dedd58b6a62f9c64d14f939959a34ef19f87e))
|
|
21
|
+
* minor css ([d6d44e4](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/d6d44e42c96e291ef29443c00e9012fdfb6823ad))
|
|
22
|
+
* operator banner width ([6d75b35](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/6d75b35d9c163169af601fa58fd5921ad7cf0ef4))
|
|
23
|
+
* remove operator banner ([acb3ce1](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/acb3ce1f69eb3cd4146acced199173cba01a9d9e))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Config
|
|
27
|
+
|
|
28
|
+
* merge master ([d14a48f](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/d14a48f5988f69d414f88f9944ed90ea6d169130))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
* Merge branch 'tm-3103-Dom-size-changes' into 'master' ([ac23b7d](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/ac23b7d0686a596f2aa31edeb077462ff47cd320))
|
|
32
|
+
* Merge branch 'tm-3080-anchor-scroll-logic' into 'master' ([a00dfbd](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/a00dfbdef6e9ac07e095c8936dc633568d41cbdd))
|
|
33
|
+
* Merge branch 'tm-3079-banner-context' into 'master' ([9b6e85d](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/9b6e85da39da788952daf7e6ea1d5bae0eb2be13))
|
|
34
|
+
* Merge branch 'master' into tm-3079-banner-context ([4480de2](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/4480de2eb45ba1fbe5307ce80b6477f45b96c8e5))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Tests
|
|
38
|
+
|
|
39
|
+
* fix test scripts ([46ca683](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/46ca6835e16fcaac3968801e9533fef36051f542))
|
|
40
|
+
|
|
41
|
+
## [13.0.6](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v13.0.5...v13.0.6) (2022-10-28)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### Bug Fixes
|
|
45
|
+
|
|
46
|
+
* author date separator and author first name extract ([4167337](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/4167337bd1662e54cc2a860cc5b688aa79328abf))
|
|
47
|
+
* gif cdn ([35f9d31](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/35f9d3186698b4883590e53aa695604a4d08dd15))
|
|
48
|
+
* module title for cards v2 ([338ce09](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/338ce0912e46c76653f4bc944b155578bc1a472d))
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
* Merge branch 'TM-3044-replace-author' into 'master' ([a5cd364](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/a5cd364a3d3362fae6b1461b8ab1c56993604a12))
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
### Tests
|
|
55
|
+
|
|
56
|
+
* fix for test script ([f80707f](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/f80707fcfacaafba4c8b5ae1c856daebe1dd9616))
|
|
57
|
+
|
|
1
58
|
## [13.0.5](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v13.0.4...v13.0.5) (2022-10-26)
|
|
2
59
|
|
|
3
60
|
|
package/gatsby-node.esm.js
CHANGED
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import React, { useEffect, useState } from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import { globalHistory } from '@reach/router';
|
|
6
|
-
import
|
|
6
|
+
import MainProvider from '~context/MainProvider';
|
|
7
7
|
import Body from '~pages/body';
|
|
8
8
|
import HeadData from '~organisms/head';
|
|
9
9
|
import { getAPIData } from '~helpers/server-data';
|
|
@@ -55,9 +55,9 @@ const AppSSR = ({ pageContext, serverData }) => {
|
|
|
55
55
|
|
|
56
56
|
return (
|
|
57
57
|
<>
|
|
58
|
-
<
|
|
58
|
+
<MainProvider value={{ translations }}>
|
|
59
59
|
<Body pageContext={isPreview ? previewContext : pageContext} serverData={serverData} />
|
|
60
|
-
</
|
|
60
|
+
</MainProvider>
|
|
61
61
|
</>
|
|
62
62
|
);
|
|
63
63
|
};
|
package/src/components/app.js
CHANGED
|
@@ -4,7 +4,7 @@ import React, { useEffect, useState } from 'react';
|
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import loadable from '@loadable/component';
|
|
6
6
|
import { globalHistory } from '@reach/router';
|
|
7
|
-
import
|
|
7
|
+
import MainProvider from '~context/MainProvider';
|
|
8
8
|
import Body from '~pages/body';
|
|
9
9
|
import HeadData from '~organisms/head';
|
|
10
10
|
|
|
@@ -61,9 +61,9 @@ const App = ({ pageContext }) => {
|
|
|
61
61
|
<TrackerContent pageContext={pageContext} path={pageContext.page.path} />
|
|
62
62
|
</>
|
|
63
63
|
) : (
|
|
64
|
-
<
|
|
64
|
+
<MainProvider value={{ translations }}>
|
|
65
65
|
<Body pageContext={isPreview ? previewContext : pageContext} />
|
|
66
|
-
</
|
|
66
|
+
</MainProvider>
|
|
67
67
|
);
|
|
68
68
|
};
|
|
69
69
|
|
|
@@ -24,7 +24,7 @@ describe('author box component', () => {
|
|
|
24
24
|
// Biography
|
|
25
25
|
expect(getByText('Here goes the biography of the author.')).toBeTruthy();
|
|
26
26
|
// CTA
|
|
27
|
-
expect(getByText('More about Ida
|
|
27
|
+
expect(getByText('More about Ida')).toBeTruthy();
|
|
28
28
|
});
|
|
29
29
|
});
|
|
30
30
|
afterEach(() => {
|
|
@@ -13,7 +13,7 @@ import styles from './author-box.module.scss';
|
|
|
13
13
|
import LazyImage from '~hooks/lazy-image';
|
|
14
14
|
import Link from '~hooks/link';
|
|
15
15
|
import { formatDate } from '~helpers/date-time';
|
|
16
|
-
import { Context } from '~context/
|
|
16
|
+
import { Context } from '~context/MainProvider';
|
|
17
17
|
|
|
18
18
|
export default function AuthorBox({
|
|
19
19
|
author,
|
|
@@ -22,7 +22,7 @@ export default function AuthorBox({
|
|
|
22
22
|
email = '../../../images/email.svg',
|
|
23
23
|
date = '',
|
|
24
24
|
dateFormat = 'DD.MM.YYYY',
|
|
25
|
-
dateSeparator = '
|
|
25
|
+
dateSeparator = '/',
|
|
26
26
|
readingTime = '',
|
|
27
27
|
reviewer = {},
|
|
28
28
|
check = '../../../images/check.svg',
|
|
@@ -133,7 +133,7 @@ export default function AuthorBox({
|
|
|
133
133
|
>
|
|
134
134
|
{translate(translations, 'read_more_about', 'More about [author]').replace(
|
|
135
135
|
'[author]',
|
|
136
|
-
author.name
|
|
136
|
+
author.name.split(' ')[0]
|
|
137
137
|
)}
|
|
138
138
|
<FaArrowRight />
|
|
139
139
|
</Link>
|
|
@@ -6,7 +6,7 @@ import Link from '~hooks/link';
|
|
|
6
6
|
import styles from './breadcrumbs.module.scss';
|
|
7
7
|
import keygen from '~helpers/keygen';
|
|
8
8
|
import { translate } from '~helpers/getters';
|
|
9
|
-
import { Context } from '~context/
|
|
9
|
+
import { Context } from '~context/MainProvider';
|
|
10
10
|
|
|
11
11
|
function Breadcrumbs({ page, separator = <span> / </span> }) {
|
|
12
12
|
const { translations } = useContext(Context) || {};
|
|
@@ -45,7 +45,7 @@ Breadcrumbs.propTypes = {
|
|
|
45
45
|
page: PropTypes.shape({
|
|
46
46
|
title: PropTypes.string,
|
|
47
47
|
path: PropTypes.string,
|
|
48
|
-
breadcrumbs: PropTypes.arrayOf(PropTypes.
|
|
48
|
+
breadcrumbs: PropTypes.arrayOf(PropTypes.shape({})),
|
|
49
49
|
vanity_label: PropTypes.string,
|
|
50
50
|
translations: PropTypes.shape({}),
|
|
51
51
|
}).isRequired,
|
|
@@ -6,13 +6,13 @@ import Link from '~hooks/link';
|
|
|
6
6
|
import styles from './module-title.module.scss';
|
|
7
7
|
|
|
8
8
|
const ModuleTitle = ({ module, viewMoreIcon = <FaAngleRight />, pageContext = null }) => {
|
|
9
|
-
const getTitle = () => {
|
|
9
|
+
const getTitle = (classname = '') => {
|
|
10
10
|
if (module.module_title_tag === 'h2') return <h2>{module.module_title}</h2>;
|
|
11
11
|
if (module.module_title_tag === 'h3') return <h3>{module.module_title}</h3>;
|
|
12
12
|
if (module.module_title_tag === 'h4') return <h4>{module.module_title}</h4>;
|
|
13
13
|
if (module.module_title_tag === 'h5') return <h5>{module.module_title}</h5>;
|
|
14
14
|
if (module.module_title_tag === 'h6') return <h6>{module.module_title}</h6>;
|
|
15
|
-
return <span className={styles.noTag}>{module.module_title}</span>;
|
|
15
|
+
return <span className={`${styles.noTag} ${classname}`}>{module.module_title}</span>;
|
|
16
16
|
};
|
|
17
17
|
// if (
|
|
18
18
|
// module.name === 'content' &&
|
|
@@ -26,25 +26,29 @@ const ModuleTitle = ({ module, viewMoreIcon = <FaAngleRight />, pageContext = nu
|
|
|
26
26
|
|
|
27
27
|
const type = pageContext && pageContext?.page?.type;
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
29
|
+
if (module.module_title && module.link_label) {
|
|
30
|
+
return (
|
|
31
|
+
<div
|
|
32
|
+
className={`${styles.moduleTitle} ${styles[type]} ${
|
|
33
|
+
module?.style && styles[module.style]
|
|
34
|
+
}`}
|
|
35
|
+
>
|
|
36
|
+
{getTitle(module)}
|
|
37
|
+
|
|
38
|
+
<Link to={module.link_value} className={`${styles.viewMore} module-title-gtm`}>
|
|
39
|
+
{module.link_label}
|
|
40
|
+
{viewMoreIcon}
|
|
41
|
+
</Link>
|
|
42
|
+
</div>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (module.module_title && !module.link_label) {
|
|
47
|
+
return (
|
|
48
|
+
module.module_title &&
|
|
49
|
+
getTitle(`${styles.moduleTitle} ${styles[type]} ${module?.style && styles[module.style]}`)
|
|
50
|
+
);
|
|
51
|
+
}
|
|
48
52
|
};
|
|
49
53
|
|
|
50
54
|
ModuleTitle.propTypes = {
|
|
@@ -24,19 +24,19 @@ describe('Module Title Component', () => {
|
|
|
24
24
|
expect(container.querySelector('i.arrow-left')).toBeTruthy();
|
|
25
25
|
});
|
|
26
26
|
|
|
27
|
-
test('without title', () => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
});
|
|
27
|
+
// test('without title', () => {
|
|
28
|
+
// const { container, getByText } = render(
|
|
29
|
+
// <ModuleTitle
|
|
30
|
+
// module={{
|
|
31
|
+
// link_label: 'View More',
|
|
32
|
+
// link_value: '/more',
|
|
33
|
+
// }}
|
|
34
|
+
// />
|
|
35
|
+
// );
|
|
36
|
+
// expect(container.querySelector('h2')).toBeFalsy();
|
|
37
|
+
// expect(getByText('View More')).toBeTruthy();
|
|
38
|
+
// expect(container.querySelector('a.viewMore').getAttribute('href')).toEqual('/more');
|
|
39
|
+
// });
|
|
40
40
|
|
|
41
41
|
test('all H elements', () => {
|
|
42
42
|
const arr = ['h2', 'h3', 'h4', 'h5', 'h6'];
|
|
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
|
|
|
4
4
|
|
|
5
5
|
import Button from '~atoms/button';
|
|
6
6
|
import { prettyTracker, translate } from '~helpers/getters';
|
|
7
|
-
import { Context } from '~context/
|
|
7
|
+
import { Context } from '~context/MainProvider';
|
|
8
8
|
import styles from './operator-cta.module.scss';
|
|
9
9
|
|
|
10
10
|
export default function OperatorCta({
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import React, { useState, useEffect } from 'react';
|
|
1
|
+
import React, { useState, useEffect, useContext } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
|
|
3
|
+
import { Context } from '~context/MainProvider';
|
|
4
4
|
import styles from './scroll-to-top.module.scss';
|
|
5
5
|
|
|
6
6
|
const ScrollToTop = ({ scrollTo = '0' }) => {
|
|
7
7
|
const [showScroll, setShowScroll] = useState(false);
|
|
8
|
+
const { cookieAccepted, bannerIsActive } = useContext(Context) || {};
|
|
8
9
|
|
|
9
10
|
const checkScrollTop = () => {
|
|
10
11
|
if (!showScroll && window.pageYOffset > 400) {
|
|
@@ -35,7 +36,9 @@ const ScrollToTop = ({ scrollTo = '0' }) => {
|
|
|
35
36
|
type="button"
|
|
36
37
|
aria-label="Scroll to top"
|
|
37
38
|
onClick={(e) => scrollTop(e)}
|
|
38
|
-
className={styles.scrollToTop}
|
|
39
|
+
className={`${styles.scrollToTop} ${cookieAccepted && styles.cookieAccepted} ${
|
|
40
|
+
!bannerIsActive && styles.closedBanner
|
|
41
|
+
}`}
|
|
39
42
|
style={{ display: showScroll ? 'flex' : 'none' }}
|
|
40
43
|
/>
|
|
41
44
|
);
|
|
@@ -12,7 +12,7 @@ body[data-scroll='0'] {
|
|
|
12
12
|
width: 64px;
|
|
13
13
|
height: 64px;
|
|
14
14
|
text-align: center;
|
|
15
|
-
bottom:
|
|
15
|
+
bottom: 47rem;
|
|
16
16
|
position: fixed;
|
|
17
17
|
right: 0;
|
|
18
18
|
|
|
@@ -22,4 +22,36 @@ body[data-scroll='0'] {
|
|
|
22
22
|
bottom: calc(50% - 1.25rem);
|
|
23
23
|
left: calc(50% - 1rem);
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
|
|
26
|
+
&.cookieAccepted {
|
|
27
|
+
bottom: 25rem;
|
|
28
|
+
|
|
29
|
+
&.closedBanner{
|
|
30
|
+
bottom: 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@include min(tablet){
|
|
34
|
+
bottom: 11rem;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&.closedBanner{
|
|
39
|
+
bottom: 22rem;
|
|
40
|
+
|
|
41
|
+
@include min(tablet){
|
|
42
|
+
bottom: 16.2rem;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@include min(laptop){
|
|
46
|
+
bottom: 7.4rem;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@include min(tablet){
|
|
51
|
+
bottom: 27.2rem;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@include min(laptop){
|
|
55
|
+
bottom: 18.4rem;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -6,7 +6,7 @@ import { BiSitemap } from '@react-icons/all-files/bi/BiSitemap';
|
|
|
6
6
|
import { IoMdLink } from '@react-icons/all-files/io/IoMdLink';
|
|
7
7
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
8
8
|
import Masonry from 'react-masonry-css';
|
|
9
|
-
import { Context } from '~context/
|
|
9
|
+
import { Context } from '~context/MainProvider';
|
|
10
10
|
import { translate } from '~helpers/getters';
|
|
11
11
|
import styles from './sitemap.module.scss';
|
|
12
12
|
import Link from '~hooks/link';
|
|
@@ -47,14 +47,14 @@ const Spotlights = ({ module, themeStyles = {} }) => {
|
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
return (
|
|
50
|
-
|
|
50
|
+
<>
|
|
51
51
|
{show_read_more === '1' && (
|
|
52
52
|
<div
|
|
53
53
|
className={styles.spotlightsText}
|
|
54
54
|
dangerouslySetInnerHTML={{ __html: read_more_text }}
|
|
55
55
|
/>
|
|
56
56
|
)}
|
|
57
|
-
<ul>
|
|
57
|
+
<ul className={`${styles.spotlightsContainer} ${getStyle()}`}>
|
|
58
58
|
{items.map((item) => (
|
|
59
59
|
<li key={keygen()}>
|
|
60
60
|
{item.link &&
|
|
@@ -82,7 +82,7 @@ const Spotlights = ({ module, themeStyles = {} }) => {
|
|
|
82
82
|
|
|
83
83
|
{mode === 'image_text' &&
|
|
84
84
|
(item.link && item.link.value ? (
|
|
85
|
-
|
|
85
|
+
<>
|
|
86
86
|
{item?.text && <div dangerouslySetInnerHTML={{ __html: item.text }} />}
|
|
87
87
|
<Button
|
|
88
88
|
to={item.link.value}
|
|
@@ -94,14 +94,14 @@ const Spotlights = ({ module, themeStyles = {} }) => {
|
|
|
94
94
|
gtmClass="spotlights-gtm"
|
|
95
95
|
btnText={item.link_text ? item.link_text : 'Read More'}
|
|
96
96
|
/>
|
|
97
|
-
|
|
97
|
+
</>
|
|
98
98
|
) : (
|
|
99
99
|
item.text && <div dangerouslySetInnerHTML={{ __html: item.text }} />
|
|
100
100
|
))}
|
|
101
101
|
</li>
|
|
102
102
|
))}
|
|
103
103
|
</ul>
|
|
104
|
-
|
|
104
|
+
</>
|
|
105
105
|
);
|
|
106
106
|
};
|
|
107
107
|
Spotlights.propTypes = {
|
|
@@ -3,56 +3,54 @@
|
|
|
3
3
|
width: 100%;
|
|
4
4
|
max-width: var(--main-container-max);
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
display: grid;
|
|
7
|
+
grid-template-columns: repeat(1, 1fr);
|
|
8
|
+
column-gap: 1rem;
|
|
9
|
+
@include min(tablet) {
|
|
10
|
+
grid-template-columns: repeat(2, 1fr);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@include min(desktop) {
|
|
14
|
+
grid-template-columns: repeat(3, 1fr);
|
|
15
|
+
column-gap: 1.6rem;
|
|
16
|
+
}
|
|
17
|
+
li {
|
|
18
|
+
text-align: center;
|
|
19
|
+
background-color: var(--color-9);
|
|
20
|
+
border: none;
|
|
21
|
+
margin-bottom: 1rem;
|
|
22
|
+
padding: 1.5rem;
|
|
13
23
|
|
|
14
24
|
@include min(desktop) {
|
|
15
|
-
|
|
16
|
-
column-gap: 1.6rem;
|
|
25
|
+
margin-bottom: 1.6rem;
|
|
17
26
|
}
|
|
18
|
-
li {
|
|
19
|
-
text-align: center;
|
|
20
|
-
background-color: var(--color-9);
|
|
21
|
-
border: none;
|
|
22
|
-
margin-bottom: 1rem;
|
|
23
|
-
padding: 1.5rem;
|
|
24
|
-
|
|
25
|
-
@include min(desktop) {
|
|
26
|
-
margin-bottom: 1.6rem;
|
|
27
|
-
}
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
@include flex-direction(column);
|
|
30
29
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
img {
|
|
31
|
+
margin: 0 auto;
|
|
32
|
+
margin-bottom: 1rem;
|
|
33
|
+
}
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
35
|
+
> div > a {
|
|
36
|
+
@include flex-direction(column);
|
|
37
|
+
color: #000;
|
|
38
|
+
font-size: 2rem;
|
|
39
|
+
font-weight: 700;
|
|
40
|
+
margin-top: 1rem;
|
|
41
|
+
width: 100%;
|
|
42
|
+
|
|
43
|
+
label {
|
|
44
|
+
cursor: pointer;
|
|
47
45
|
}
|
|
46
|
+
}
|
|
48
47
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
span {
|
|
49
|
+
display: block;
|
|
50
|
+
}
|
|
52
51
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
52
|
+
svg {
|
|
53
|
+
display: none;
|
|
56
54
|
}
|
|
57
55
|
}
|
|
58
56
|
}
|